Перейти к содержанию

API node:module

v18.x.x

Объект Модуль

  • {Object}

Предоставляет общие полезные методы при взаимодействии с экземплярами Module, переменной module, часто встречающейся в модулях CommonJS. Доступ к ней осуществляется через import 'node:module' или require('node:module').

module.builtinModules

  • {string[]}

Список имен всех модулей, предоставляемых Node.js. Может использоваться для проверки того, поддерживается ли модуль третьей стороной или нет.

модуль в данном контексте - это не тот же объект, который предоставляется [оберткой модуля] (modules.md#the-module-wrapper). Для доступа к нему требуется модуль Module:

1
2
3
// module.mjs
// В модуле ECMAScript
import { builtinModules as builtin } from 'node:module';
1
2
3
// module.cjs
// В модуле CommonJS
const builtin = require('node:module').builtinModules;

module.createRequire(filename)

  • filename {string|URL} Имя файла, которое будет использоваться для создания функции require. Должно быть объектом URL файла, строкой URL файла или строкой абсолютного пути.
  • Возвращает: {require} Функция require
1
2
3
4
5
import { createRequire } from 'node:module';
const require = createRequire(import.meta.url);

// sibling-module.js является модулем CommonJS.
const siblingModule = require('./sibling-module');

module.isBuiltin(moduleName)

  • moduleName {строка} имя модуля
  • Возвращает: {boolean} возвращает true, если модуль является встроенным, иначе возвращает false
1
2
3
4
import { isBuiltin } from 'node:module';
isBuiltin('node:fs'); // true
isBuiltin('fs'); // true
isBuiltin('wss'); // false

module.syncBuiltinESMExports()

Метод module.syncBuiltinESMExports() обновляет все живые привязки для встроенных ES Modules, чтобы они соответствовали свойствам экспортируемых CommonJS. Он не добавляет и не удаляет экспортируемые имена из ES Modules.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
const fs = require('node:fs');
const assert = require('node:assert');
const { syncBuiltinESMExports } = require('node:module');


fs.readFile = newAPI;


удалить fs.readFileSync;


function newAPI() {
  // ...
}


fs.newAPI = newAPI;


syncBuiltinESMExports();


import('node:fs').then((esmFS) => {
  // Он синхронизирует существующее свойство readFile с новым значением
  assert.strictEqual(esmFS.readFile, newAPI);
  // readFileSync был удален из требуемой fs
  assert.strictEqual('readFileSync' in fs, false);
  // syncBuiltinESMExports() не удаляет readFileSync из esmFS
  assert.strictEqual('readFileSync' in esmFS, true);
  // syncBuiltinESMExports() не добавляет имена
  assert.strictEqual(esmFS.newAPI, undefined);
});

Source map v3 support

Стабильность: 1 - Экспериментальная

Помощники для взаимодействия с кэшем карты источников. Этот кэш заполняется, когда включен разбор карты источников и директивы включения карты источников найдены в нижнем колонтитуле модулей.

Чтобы включить разбор карты исходников, Node.js должен быть запущен с флагом --enable-source-maps, или с включенным покрытием кода путем установки NODE_V8_COVERAGE=dir.

1
2
3
// module.mjs
// In an ECMAScript module
import { findSourceMap, SourceMap } from 'node:module';
1
2
3
// module.cjs
// In a CommonJS module
const { findSourceMap, SourceMap } = require('node:module');

module.findSourceMap(path)

  • path {строка}
  • Возвращает: {module.SourceMap|undefined} Возвращает module.SourceMap, если карта источника найдена, undefined в противном случае.

path - это разрешенный путь к файлу, для которого должна быть найдена соответствующая карта источников.

Класс: module.SourceMap

новый SourceMap(payload)

  • payload {Объект}

Создает новый экземпляр `sourceMap.

payload - это объект с ключами, соответствующими Source map v3 format:

  • file: {строка}
  • version: {число}
  • источники: {string[]}
  • sourcesContent: {string[]}
  • имена: {string[]}
  • mappings: {строка}
  • sourceRoot: {string}

sourceMap.payload.

  • Возвращает: {Object}

Получатель полезной нагрузки, используемой для построения экземпляра SourceMap.

sourceMap.findEntry(lineNumber, columnNumber).

  • lineNumber {number}
  • columnNumber {number}
  • Возвращает: {Object}

Учитывая номер строки и номер столбца в сгенерированном исходном файле, возвращает объект, представляющий позицию в исходном файле. Возвращаемый объект состоит из следующих ключей:

  • generatedLine: {number}
  • generatedColumn: {число}
  • originalSource: {строка}
  • originalLine: {number}
  • originalColumn: {число}
  • имя: {строка}

Комментарии