Spec-Zone.ru › Node.js 18 LTS

Модули: node:module API

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

Объект Module

  • <Объект>

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

module.builtinModules

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

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

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

Модули MJS

// module.mjs
// In an ECMAScript module
import { builtinModules as builtin } from 'node:module';

Модули CJS

// module.cjs
// In a CommonJS module
const builtin = require('node:module').builtinModules;

module.createRequire(filename)

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

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

module.isBuiltin(moduleName)

Добавлен в: v18.6.0
  • moduleName <строка> имя модуля
  • Возвращает: <булево> возвращает true, если модуль встроен, иначе возвращает false
import { isBuiltin } from 'node:module';
isBuiltin('node:fs'); // true
isBuiltin('fs'); // true
isBuiltin('wss'); // false copy

module.syncBuiltinESMExports()

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

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

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

fs.readFile = newAPI;

delete fs.readFileSync;

function newAPI() {
  // ...
}

fs.newAPI = newAPI;

syncBuiltinESMExports();

import('node: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);
}); copy

Поддержка Source Map v3

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

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

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

Модули MJS

// module.mjs
// In an ECMAScript module
import { findSourceMap, SourceMap } from 'node:module';

Модули CJS

// module.cjs
// In a CommonJS module
const { findSourceMap, SourceMap } = require('node:module');

module.findSourceMap(path)

Добавлен в: v13.7.0, v12.17.0
  • path <строка>
  • Возвращает: <module.SourceMap> | <undefined> Возвращает module.SourceMap если source map найден, undefined в противном случае.

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

Класс: 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
  • Возвращает: <Объект>

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

sourceMap.findEntry(lineOffset, columnOffset)
  • lineOffset <число> Смещение строки (нумерация с 0) в сгенерированном источнике
  • columnOffset <число> Смещение столбца (нумерация с 0) в сгенерированном источнике
  • Возвращает: <Объект>

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

Возвращаемый объект содержит следующие ключи:

  • generatedLine: <число> Смещение строки начала области в сгенерированном источнике
  • generatedColumn: <число> Смещение столбца начала области в сгенерированном источнике
  • originalSource: <строка> Имя файла исходного источника, как указано в SourceMap
  • originalLine: <число> Смещение строки начала области в исходном источнике
  • originalColumn: <число> Смещение столбца начала области в исходном источнике
  • name: <строка>

Возвращаемое значение представляет собой исходную область, как она отображается в SourceMap, на основе смещений с нулевой индексацией, а не 1-индексированных номеров строк и столбцов, как они отображаются в сообщениях об ошибках и объектах CallSite.

Чтобы получить соответствующие 1-индексированные номера строк и столбцов из номера строки и номера столбца, как они сообщаются стеками ошибок и объектами CallSite, используйте sourceMap.findOrigin(lineNumber, columnNumber)

sourceMap.findOrigin(lineNumber, columnNumber)
  • lineNumber <число> Номер строки (индексируется с 1) вызываемого места в сгенерированном источнике
  • columnOffset <число> Номер столбца (индексируется с 1) вызываемого места в сгенерированном источнике
  • Возвращает: <Объект>

При заданных номерах строки и столбца (индексируется с 1) вызываемого места в сгенерированном источнике находит соответствующее место вызова в исходном источнике.

Если предоставленные номер строки и номер столбца не найдены ни в одном source map, то возвращается пустой объект. В противном случае возвращаемый объект содержит следующие ключи:

  • name: <строка> | <неопределённо> Имя области в source map, если оно было предоставлено
  • fileName: <строка> Имя файла исходного источника, как указано в SourceMap
  • lineNumber: <число> Номер строки (индексируется с 1) соответствующего места вызова в исходном источнике
  • columnNumber: <число> Номер столбца (индексируется с 1) соответствующего места вызова в исходном источнике

© 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-v18.x/docs/api/module.html

Spec-Zone.ru

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