функции, классы, переменные и другие элементы, которые можно использовать в других частях приложения
import
import { add, subtract } from './math.js';
console.log(add(2, 3)); // 5
console.log(subtract(5, 3)); // 2
CommonJS
система модулей, используемая в Node.js
module.exports = function add(a, b) {
return a + b;
};
const add = require('./export');
console.log(add(2, 3));
Синхронное выполнение - каждый модуль загружается и выполняется при его первом требовании
ES модули
система модулей, введённая в спецификацию ES6
export function add(a, b) {
return a + b;
}
import { add } from './export.js';
console.log(add(2, 3)); // 5
Асинхронное выполнение - позволяет импортировать модуль вверху файла, а импорт происходит в момент когда собирается пакет приложения
export
vs
export default
export
Позволяет экспортировать несколько сущностей из одного модуля
export const PI = 3.14;
export function add(a, b) {
return a + b;
}
import { PI, add } from './math.js';
export default
Позволяет экспортировать только одну сущность по умолчанию
export default function log(msg) {
console.log(msg);
}
import log from './logger.js'; // имя может быть любым
log('Привет!');
инструмент, который помогает разработчику устанавливать, обновлять и управлять внешними библиотеками
пакетный менеджер для
Node.js
npm
в экосистеме JavaScript
package.json