Модулі ECMAScript
Починаючи з версії 6.х Node.js підтримується підключення модулів згідно стандарту ECMAScript. Щоправда, повноцінно таке імпортування модулів запрацювало тільки з версії 14.x.
Перший спосіб за допомогою використання MJS модулів ми розглянули раніше.
Другий спосіб завдяки конфігурації файлу package.json. Це по суті файл налаштування проєкту. Йому потрібно встановити поле "type" у значення "module".
Спочатку потрібно ініціалізувати проєкт. В терміналі заходимо в папку нашого проєкту і запускаємо команду
npm init
Після цього проклацуємо і вводимо всі поля налаштувань, які запитає термінал.
Утім можна поставити прапорець -y і в такому разі всі налаштування встановляться за замовчанням, але ми зможемо їх скорегувати в будь-який момент в проєкті в VSCode.
npm init -y
Після цього у каталозі нашого проєкту створиться файл package.json.
{
"name": "es6_modules",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "Sasha Khomiak",
"license": "ISC"
}
Нам потрібно дописати йому поле "type" у значення "module"
"type": "module"
Тепер можна використовувати синтаксис експорту-імпорту стандарту ECMAScript, як було описано в MJS модулях. Тільки файли матимуть розширення js і при імпорті його не обов'язково вказувати.
const english = () => console.log("Hello from ECMAScript module");
export default english;
import english from "./english";
english();
А ось рефакторинг коду розглянутого в CommonJS.
export const info = msg => {
console.log(`Info: ${msg}`);
};
export const log = msg => {
console.log(`Log: ${msg}`);
};
import { info, log } from './module';
info('info function');
log('log function');
Last updated