Spec-Zone.ru › Node.js 14 LTS

Модули: module API

Добавлен в: v0.3.7

Объект Module

  • <Объект>

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

module.builtinModules

Добавлен в: v9.3.0, v8.10.0, v6.13.0
  • <массив строк>

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

module в данном контексте — не тот же объект, что и предоставляемый обёрткой модуля модуля. Для доступа к нему необходимо потребовать модуль Module:

// module.mjs
// In an ECMAScript module
import { builtinModules as builtin } from 'module';
// module.cjs
// In a CommonJS module
const builtin = require('module').builtinModules;

module.createRequire(filename)

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

// sibling-module.js is a CommonJS module.
const siblingModule = require('./sibling-module');

module.createRequireFromPath(filename)

Добавлен в: v10.12.0Устарел начиная с: v12.2.0
Уровень стабильности: 0 - Устарел: Пожалуйста, используйте createRequire() вместо этого.
  • filename <строка> Имя файла для создания относительной функции require.
  • Возвращает: <require> Функция require
const { createRequireFromPath } = require('module');
const requireUtil = createRequireFromPath('../src/utils/');

// Require `../src/utils/some-tool`
requireUtil('./some-tool');

module.syncBuiltinESMExports()

Добавлен в: v12.12.0

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

const fs = require('fs');
const assert = require('assert');
const { syncBuiltinESMExports } = require('module');

fs.readFile = newAPI;

delete fs.readFileSync;

function newAPI() {
  // ...
}

fs.newAPI = newAPI;

syncBuiltinESMExports();

import('fs').then((esmFS) => {
  // It syncs the existing readFile property with the new value
  assert.strictEqual(esmFS.readFile, newAPI);
  // readFileSync has been deleted from the required fs
  assert.strictEqual('readFileSync' in fs, false);
  // syncBuiltinESMExports() does not remove readFileSync from esmFS
  assert.strictEqual('readFileSync' in esmFS, true);
  // syncBuiltinESMExports() does not add names
  assert.strictEqual(esmFS.newAPI, undefined);
});

Поддержка source map v3

Добавлен в: v13.7.0, v12.17.0
Уровень стабильности: 1 - Экспериментальный

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

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

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

module.findSourceMap(path[, error])

Добавлен в: v13.7.0, v12.17.0
  • path <строка>
  • error <Ошибка>
  • Возвращает: <module.SourceMap>

path — это разрешённый путь к файлу, для которого необходимо получить соответствующий source map.

Экземпляр error следует передавать в качестве второго параметра к findSourceMap в особых случаях, таких как вызов переопределённого Error.prepareStackTrace(error, trace). Модули не добавляются в кэш модулей до тех пор, пока не будут успешно загружены. В этих случаях source map связывается с экземпляром error вместе с path.

Класс: module.SourceMap

Добавлен в: v13.7.0, v12.17.0
new SourceMap(payload)
  • payload <Объект>

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

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

  • file: <строка>
  • version: <число>
  • sources: <массив строк>
  • sourcesContent: <массив строк>
  • names: <массив строк>
  • mappings: <строка>
  • sourceRoot: <строка>
sourceMap.payload
  • Возвращает: <Объект>

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

sourceMap.findEntry(lineNumber, columnNumber)
  • lineNumber <число>
  • columnNumber <число>
  • Возвращает: <Объект>

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

  • generatedLine: <число>
  • generatedColumn: <число>
  • originalSource: <строка>
  • originalLine: <число>
  • originalColumn: <число>

© Joyent, Inc. and other Node contributors
Licensed under the MIT License.
Node.js is a trademark of Joyent, Inc. and is used with its permission.
We are not endorsed by or affiliated with Joyent.
https://nodejs.org/dist/latest-v14.x/docs/api/module.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API