Публикации - Node.js

Менеджер зависимостей npm и стандарты node - ES2015 Modules (ESM)

ES2015 (ES6) является современным стандартом для модулей node.

Использование диррективы import

Возьмём модуль lib.js

// lib.js
const PI = 3.1415926;// add values
function sum(...args) {
log('sum', args);
return args.reduce((num, tot) => tot + num);
}
// multiply values
function mult(...args) {
log('mult', args);
return args.reduce((num, tot) => tot * num);
}
// private logging function
function log(...msg) {
console.log(...msg);
}
export { PI, sum, mult };

И рассмотрим пример подключения такого файла:

import { sum, mult } from './lib.js';

Возможно, в будущем у node будет возможность импортировать модули по внешней ссылке. Но на текущий момент такой импорт возможен только с помощью модуля HTTPS loader (https://nodejs.org/dist/latest/docs/api/esm.html#https-loader):

import { someFunction } from 'https://example.com/lib.js';

При импорте каждому методу или свойству можем задать псевдоним:

import { sum as addAll, mult as multiplyAll } from './lib.js';
console.log( addAll(1,2,3,4) ); // 10
console.log( multiplyAll(1,2,3,4) ); // 24

Можем импортировать сразу всё содержимое файла:

import * as lib from './lib.js';
console.log( lib.PI );
// 3.1415926
console.log( lib.add(1,2,3,4) ); // 10
console.log( lib.mult(1,2,3,4) ); // 24

Модуль с единичной функцией может быть экспортирован с помощью ключевого слова default. Пример:

// moduleWithDefault.js
export default function() { ... };
//or moduleWithDefault.js
function x() { ... };
export default x;
При импортировании такого модуля, мы можем задать любое имя:
import myDefault from './moduleWithDefault.js';

Это равносильно:

import { default as myDefault } from './moduleWithDefault.js';

Node.js начиная с версии 17 позволяет загружат JSON используя тот же import():

import data from './data.json' assert { type: 'json' };

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться