модуль
Использование в Deno
import * as mod from "node:module";
класс Module
Использование в Deno
import { Module } from "node:module";
Метод register является неработающей заглушкой.
Конструкторы
Module(
id: string,
parent?: Module,
) интерфейс Module
Метод register является неработающей заглушкой.
Метод register является неработающей заглушкой.
Свойства
exports: any Объект module.exports создаётся системой Module. Иногда это неприемлемо: многие хотят, чтобы их модуль был экземпляром какого-либо класса. Для этого присвойте нужный объект экспорта свойству module.exports.
filename: string Полный путь к файлу модуля.
id: string Идентификатор модуля. Обычно это полный путь к файлу.
isPreloading: boolean true, если модуль выполняется на этапе предварительной загрузки Node.js.
loaded: boolean Завершена ли загрузка модуля или она ещё выполняется.
Модуль, который первым загрузил этот модуль, или null, если текущий модуль является точкой входа текущего процесса, или undefined, если модуль был загружен чем-либо, что не является модулем CommonJS (например, REPL или import).
path: string Имя каталога модуля. Обычно оно совпадает со значением path.dirname() для module.id.
paths: string[] Пути поиска модуля.
Методы
require(id: string): any Метод module.require() позволяет загрузить модуль так, как если бы require() был вызван из исходного модуля.
пространство имён Module
Метод register является неработающей заглушкой.
Классы
Функции
Включает кэш компиляции модулей в текущем экземпляре Node.js.
// /path/to/project/packages/bar/bar.js
import { findPackageJSON } from 'node:module';
findPackageJSON('..', import.meta.url);
// '/path/to/project/package.json'
// Same result when passing an absolute specifier instead:
findPackageJSON(new URL('../', import.meta.url));
findPackageJSON(import.meta.resolve('../'));
findPackageJSON('some-package', import.meta.url);
// '/path/to/project/packages/bar/node_modules/some-package/package.json'
// When passing an absolute specifier, you might get a different result if the
// resolved module is inside a subfolder that has nested `package.json`.
findPackageJSON(import.meta.resolve('some-package'));
// '/path/to/project/packages/bar/node_modules/some-package/some-subfolder/package.json'
findPackageJSON('@foo/qux', import.meta.url);
// '/path/to/project/packages/qux/package.json'
path — это разрешённый путь к файлу, для которого следует получить соответствующую карту исходного кода.
Записывает на диск кэш компиляции модулей, накопленный при загрузке модулей в текущем экземпляре Node.js. Функция возвращает управление после завершения всех операций записи в файловую систему, независимо от их успешности. При возникновении ошибок функция завершится без уведомления, поскольку промахи кэша компиляции не должны влиять на фактическую работу приложения.
Регистрирует модуль, экспортирующий хуки для настройки разрешения модулей и поведения их загрузки в Node.js. См. раздел Хуки настройки.
module.stripTypeScriptTypes() удаляет аннотации типов из кода TypeScript. Эту функцию можно использовать для удаления аннотаций типов перед запуском кода TypeScript с помощью vm.runInContext() или vm.compileFunction(). По умолчанию функция выдаёт ошибку, если код содержит требующие преобразования возможности TypeScript, например Enums; дополнительную информацию см. в разделе удаление аннотаций типов. Если значение режима — 'transform', функция также преобразует возможности TypeScript в JavaScript; дополнительную информацию см. в разделе преобразование возможностей TypeScript. Если значение режима — 'strip', карты исходного кода не создаются, поскольку позиции сохраняются. Если задано sourceMap, а значение режима — 'strip', будет выдана ошибка.
Метод module.syncBuiltinESMExports() обновляет все живые привязки встроенных модулей ES Modules в соответствии со свойствами экспортов CommonJS. Он не добавляет и не удаляет имена экспортов из ES Modules.
Интерфейсы
Пространства имён
Псевдонимы типов
Хук initialize позволяет определить пользовательскую функцию, которая выполняется в потоке хуков при инициализации модуля хуков. Инициализация происходит при регистрации модуля хуков с помощью register.
Хук load позволяет задать пользовательский способ определения того, как следует интерпретировать, получать и анализировать URL. Он также отвечает за проверку атрибутов импорта.
Цепочка хуков resolve отвечает за указание Node.js, где найти и как кэшировать заданную инструкцию или выражение import либо вызов require. При необходимости она может вернуть формат (например, 'module') в качестве подсказки для хука load. Если формат указан, хук load в конечном счёте отвечает за предоставление окончательного значения format (и может проигнорировать подсказку, предоставленную resolve); если resolve предоставляет format, требуется пользовательский хук load, даже если он лишь передаёт значение стандартному хуку Node.js load.
Переменные
Список имён всех модулей, предоставляемых Node.js. Можно использовать, чтобы проверить, поддерживается ли модуль сторонним разработчиком.
класс Module.SourceMap
Использование в Deno
import { Module } from "node:module";
Конструкторы
SourceMap(
payload: SourceMapPayload,
options?: SourceMapConstructorOptions,
) Свойства
payload: SourceMapPayload Геттер для данных, использованных при создании экземпляра SourceMap.
Методы
findEntry(
lineOffset: number,
columnOffset: number,
): SourceMapping | { } Для заданных смещения строки и столбца в сгенерированном исходном файле возвращает объект, представляющий диапазон SourceMap в исходном файле, если он найден, или пустой объект, если нет.
Возвращённый объект содержит следующие ключи:
Возвращаемое значение представляет исходный диапазон в том виде, в каком он указан в SourceMap, с нумерацией смещений с нуля, а не с нумерацией строк и столбцов с единицы, используемой в сообщениях об ошибках и объектах CallSite.
Чтобы получить соответствующие номера строк и столбцов с нумерацией с единицы по значениям lineNumber и columnNumber, указанным в стеке Error и объектах CallSite, используйте sourceMap.findOrigin(lineNumber, columnNumber)
findOrigin(
lineNumber: number,
columnNumber: number,
): SourceOrigin | { } По заданным lineNumber и columnNumber с нумерацией с единицы из места вызова в сгенерированном исходном коде находит соответствующее место вызова в исходном коде.
Если указанные lineNumber и columnNumber не найдены ни в одной карте исходного кода, возвращается пустой объект.
функция Module.createRequire
Использование в Deno
import { Module } from "node:module";
функция Module.enableCompileCache
Использование в Deno
import { Module } from "node:module";
enableCompileCache(cacheDir?: string): EnableCompileCacheResultВключает кэш компиляции модулей в текущем экземпляре Node.js.
Если cacheDir не указан, Node.js будет использовать каталог, заданный переменной окружения NODE_COMPILE_CACHE=dir, если она установлена, или path.join(os.tmpdir(), 'node-compile-cache') в противном случае. Для большинства случаев рекомендуется вызывать module.enableCompileCache() без указания cacheDir, чтобы при необходимости каталог можно было переопределить с помощью переменной окружения NODE_COMPILE_CACHE.
Поскольку кэш компиляции — это незаметная оптимизация, не необходимая для работы приложения, этот метод не выбрасывает исключений, если включить кэш компиляции не удаётся. Вместо этого он возвращает объект, содержащий сообщение об ошибке в поле message, чтобы упростить отладку. Если кэш компиляции включён успешно, поле directory возвращённого объекта содержит путь к каталогу, в котором хранится кэш компиляции. Поле status возвращённого объекта будет содержать одно из значений module.constants.compileCacheStatus, указывающих на результат попытки включить кэш компиляции модулей.
Этот метод влияет только на текущий экземпляр Node.js. Чтобы включить кэш в дочерних рабочих потоках, вызовите этот метод также в дочерних рабочих потоках или задайте значение process.env.NODE_COMPILE_CACHE, равное каталогу кэша компиляции, чтобы это поведение наследовалось дочерними рабочими потоками. Каталог можно получить из поля directory, возвращаемого этим методом, или с помощью getCompileCacheDir.
Параметры
cacheDir: string Необязательный путь для указания каталога, в котором будет храниться кэш компиляции или из которого он будет извлекаться.
Тип возвращаемого значения
функция Module.findPackageJSON
Использование в Deno
import { Module } from "node:module";
findPackageJSON(): string | undefined/path/to/project
├ packages/
├ bar/
├ bar.js
└ package.json // name = '@foo/bar'
└ qux/
├ node_modules/
└ some-package/
└ package.json // name = 'some-package'
├ qux.js
└ package.json // name = '@foo/qux'
├ main.js
└ package.json // name = '@foo'
// /path/to/project/packages/bar/bar.js
import { findPackageJSON } from 'node:module';
findPackageJSON('..', import.meta.url);
// '/path/to/project/package.json'
// Same result when passing an absolute specifier instead:
findPackageJSON(new URL('../', import.meta.url));
findPackageJSON(import.meta.resolve('../'));
findPackageJSON('some-package', import.meta.url);
// '/path/to/project/packages/bar/node_modules/some-package/package.json'
// When passing an absolute specifier, you might get a different result if the
// resolved module is inside a subfolder that has nested `package.json`.
findPackageJSON(import.meta.resolve('some-package'));
// '/path/to/project/packages/bar/node_modules/some-package/some-subfolder/package.json'
findPackageJSON('@foo/qux', import.meta.url);
// '/path/to/project/packages/qux/package.json'
Параметры
specifier: string | URL Спецификатор модуля, для которого нужно получить package.json. Если передан неполный спецификатор, возвращается package.json в корне пакета. Если передан относительный спецификатор или абсолютный спецификатор, возвращается ближайший родительский package.json.
base: string | URL Абсолютное местоположение (строка URL file: или путь в ФС) содержащего модуля. Для CJS используйте __filename (не __dirname!); для ESM используйте import.meta.url. Передавать это значение не нужно, если specifier является абсолютным спецификатором.
Тип возвращаемого значения
string | undefined Путь, если package.json найден. Если startLocation — это пакет, возвращается корневой package.json пакета; если он относительный или не разрешён, возвращается ближайший package.json к startLocation.
функция Module.findSourceMap
Использование в Deno
import { Module } from "node:module";
findSourceMap(path: string): SourceMap | undefinedpath — это разрешённый путь к файлу, для которого нужно получить соответствующую карту исходного кода.
Параметры
path: string Тип возвращаемого значения
SourceMap | undefined Возвращает module.SourceMap, если карта исходного кода найдена, и undefined в противном случае.
функция Module.flushCompileCache
Использование в Deno
import { Module } from "node:module";
flushCompileCache(): voidСбрасывает на диск кэш компиляции модулей, накопленный для уже загруженных модулей в текущем экземпляре Node.js. Метод возвращает управление после завершения всех операций файловой системы по сбросу данных — независимо от того, завершились ли они успешно. При возникновении ошибок они игнорируются, поскольку промахи кэша компиляции не должны мешать фактической работе приложения.
Тип возвращаемого значения
void функция Module.getCompileCacheDir
Использование в Deno
import { Module } from "node:module";
getCompileCacheDir(): string | undefinedТип возвращаемого значения
string | undefined Путь к каталогу кэша компиляции модулей, если он включён, или undefined в противном случае.
функция Module.isBuiltin
Использование в Deno
import { Module } from "node:module";
isBuiltin(moduleName: string): booleanПараметры
moduleName: string Тип возвращаемого значения
boolean функция Module.register
Использование в Deno
import { Module } from "node:module";
Вариант 1
register<Data = any>(): voidРегистрирует модуль, экспортирующий хуки для настройки разрешения и загрузки модулей Node.js. См. раздел Хуки настройки.
Для использования этой функции с моделью разрешений требуется --allow-worker.
Параметры типа
Data = any Параметры
specifier: string | URL Регистрируемые хуки настройки; здесь должна быть та же строка, которая передавалась бы в import(), за исключением того, что относительный путь разрешается относительно parentURL.
parentURL: string | URL Если нужно разрешить specifier относительно базового URL, например import.meta.url, этот URL можно передать сюда.
options: RegisterOptions<Data> Тип возвращаемого значения
void Вариант 2
register<Data = any>(
specifier: string | URL,
options?: RegisterOptions<Data>,
): voidПараметры типа
Data = any Параметры
specifier: string | URL options: RegisterOptions<Data> Тип возвращаемого значения
void функция Module.runMain
Использование в Deno
import { Module } from "node:module";
runMain(main?: string): voidПараметры
main: string Тип возвращаемого значения
void функция Module.stripTypeScriptTypes
Использование в Deno
import { Module } from "node:module";
stripTypeScriptTypes(
code: string,
options?: StripTypeScriptTypesOptions,
): stringmodule.stripTypeScriptTypes() удаляет аннотации типов из кода TypeScript. Эту функцию можно использовать для удаления аннотаций типов из кода TypeScript перед его запуском с помощью vm.runInContext() или vm.compileFunction(). По умолчанию функция выдаёт ошибку, если код содержит возможности TypeScript, требующие преобразования, например Enums; дополнительную информацию см. в разделе удаление типов. Если режим имеет значение 'transform', функция также преобразует возможности TypeScript в JavaScript; дополнительную информацию см. в разделе преобразование возможностей TypeScript. Если режим имеет значение 'strip', карты исходного кода не создаются, поскольку расположение сохраняется. Если задано sourceMap, а режим имеет значение 'strip', будет выдана ошибка.
ПРЕДУПРЕЖДЕНИЕ: Результат работы этой функции не следует считать стабильным в разных версиях Node.js из-за изменений в синтаксическом анализаторе TypeScript.
import { stripTypeScriptTypes } from 'node:module';
const code = 'const a: number = 1;';
const strippedCode = stripTypeScriptTypes(code);
console.log(strippedCode);
// Prints: const a = 1;
Если задано sourceUrl, оно будет добавлено в виде комментария в конце результата:
import { stripTypeScriptTypes } from 'node:module';
const code = 'const a: number = 1;';
const strippedCode = stripTypeScriptTypes(code, { mode: 'strip', sourceUrl: 'source.ts' });
console.log(strippedCode);
// Prints: const a = 1\n\n//# sourceURL=source.ts;
Если mode имеет значение 'transform', код преобразуется в JavaScript:
import { stripTypeScriptTypes } from 'node:module';
const code = `
namespace MathUtil {
export const add = (a: number, b: number) => a + b;
}`;
const strippedCode = stripTypeScriptTypes(code, { mode: 'transform', sourceMap: true });
console.log(strippedCode);
// Prints:
// var MathUtil;
// (function(MathUtil) {
// MathUtil.add = (a, b)=>a + b;
// })(MathUtil || (MathUtil = {}));
// # sourceMappingURL=data:application/json;base64, ...
Параметры
code: string Код, из которого нужно удалить аннотации типов.
options: StripTypeScriptTypesOptions Тип возвращаемого значения
string Код с удалёнными аннотациями типов.
функция Module.syncBuiltinESMExports
Использование в Deno
import { Module } from "node:module";
syncBuiltinESMExports(): voidМетод module.syncBuiltinESMExports() обновляет все живые привязки встроенных ES Modules в соответствии со свойствами экспортов CommonJS. Он не добавляет и не удаляет экспортируемые имена из ES Modules.
import fs from 'node:fs';
import assert from 'node:assert';
import { syncBuiltinESMExports } from '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);
});
Тип возвращаемого значения
void функция Module.wrap
Использование в Deno
import { Module } from "node:module";
wrap(script: string): stringПараметры
script: string Тип возвращаемого значения
string интерфейс ImportMeta
Использование в Deno
import { type ImportMeta } from "node:module";
Свойства
dirname: string Имя каталога текущего модуля. Оно совпадает со значением path.dirname() для import.meta.filename. Примечание: присутствует только в модулях file:.
filename: string Полный абсолютный путь и имя файла текущего модуля с разрешёнными символическими ссылками. Это совпадает со значением url.fileURLToPath() для import.meta.url. Примечание: это свойство поддерживается только локальными модулями. Модули, не использующие протокол file:, его не предоставляют.
url: string Абсолютный URL file: модуля.
Методы
интерфейс Module.EnableCompileCacheResult
Использование в Deno
import { Module } from "node:module";
Свойства
status: number message: string Если Node.js не удаётся включить кэш компиляции, здесь содержится сообщение об ошибке. Устанавливается только в том случае, если status равно module.constants.compileCacheStatus.FAILED.
directory: string Если кэш компиляции включён, здесь содержится каталог, в котором он хранится. Устанавливается только в том случае, если status равно module.constants.compileCacheStatus.ENABLED или module.constants.compileCacheStatus.ALREADY_ENABLED.
интерфейс Module.ImportAttributes
Использование в Deno
import { Module } from "node:module";
Свойства
type: string | undefined интерфейс Module.LoadFnOutput
Использование в Deno
import { Module } from "node:module";
Свойства
shortCircuit: boolean | undefined Сигнал о том, что этот хук намерен завершить цепочку хуков resolve.
source: ModuleSource | undefined Исходный код для выполнения Node.js
интерфейс Module.LoadHookContext
Использование в Deno
import { Module } from "node:module";
Свойства
conditions: string[] Условия экспорта соответствующего package.json
format:
string
| null
| undefined
Формат, необязательно предоставленный цепочкой хуков resolve (может быть промежуточным значением).
Объект, пары ключ-значение которого представляют утверждения для импортируемого модуля
интерфейс Module.RegisterOptions
Использование в Deno
import { Module } from "node:module";
Параметры типа
Data Свойства
Если необходимо разрешить specifier относительно базового URL, например import.meta.url, можно передать этот URL здесь. Это свойство игнорируется, если parentURL передан вторым аргументом.
Любое произвольное клонируемое значение JavaScript, передаваемое хуку инициализации.
transferList: any[] | undefined Переносимые объекты, передаваемые хуку initialize.
интерфейс Module.ResolveFnOutput
Использование в Deno
import { Module } from "node:module";
Свойства
format:
string
| null
| undefined
Подсказка для хука загрузки (может быть проигнорирована); может быть промежуточным значением.
importAttributes: ImportAttributes | undefined Атрибуты импорта, используемые при кэшировании модуля (необязательно; если не указаны, будут использованы входные данные)
shortCircuit: boolean | undefined Сигнал о том, что этот хук намерен завершить цепочку хуков resolve.
url: string Абсолютный URL, в который разрешается этот входной путь
интерфейс Module.ResolveHookContext
Использование в Deno
import { Module } from "node:module";
Свойства
conditions: string[] Условия экспорта соответствующего package.json
Объект, пары ключ-значение которого представляют утверждения для импортируемого модуля
parentURL: string | undefined Модуль, импортирующий этот модуль, или undefined, если это точка входа Node.js
интерфейс Module.SourceMapConstructorOptions
Использование в Deno
import { Module } from "node:module";
Свойства
lineLengths: readonly number[] | undefined интерфейс Module.SourceMapPayload
Использование в Deno
import { Module } from "node:module";
Свойства
file: string version: number sources: string[] sourcesContent: string[] names: string[] mappings: string sourceRoot: string интерфейс Module.SourceMapping
Использование в Deno
import { Module } from "node:module";
Свойства
generatedLine: number generatedColumn: number originalSource: string originalLine: number originalColumn: number интерфейс Module.SourceOrigin
Использование в Deno
import { Module } from "node:module";
Свойства
name: string | undefined Имя диапазона в карте исходного кода, если оно задано
fileName: string Имя файла исходного кода, указанное в SourceMap
lineNumber: number Номер строки (начиная с 1) соответствующего места вызова в исходном коде
columnNumber: number Номер столбца (начиная с 1) соответствующего места вызова в исходном коде
интерфейс Module.StripTypeScriptTypesOptions
Использование в Deno
import { Module } from "node:module";
Свойства
mode:
"strip"
| "transform"
| undefined
Возможные значения:
-
'strip'Удалять только аннотации типов, не преобразуя конструкции TypeScript. -
'transform'Удалять аннотации типов и преобразовывать конструкции TypeScript в JavaScript.
sourceMap: boolean | undefined Только если mode равно 'transform': если задано true, для преобразованного кода будет создана карта исходного кода.
sourceUrl: string | undefined Задаёт URL исходного кода, используемый в карте исходного кода.
интерфейс Require
Использование в Deno
import { type Require } from "node:module";
Сигнатуры вызова
(id: string): any Используется для импорта модулей, JSON и локальных файлов.
Свойства
При загрузке модули кэшируются в этом объекте. Удалив пару ключ-значение из этого объекта, вы заставите следующий вызов require перезагрузить модуль. Это не относится к собственным дополнениям, повторная загрузка которых приведёт к ошибке.
extensions: RequireExtensions Указывает require, как обрабатывать определённые расширения файлов.
Объект Module, представляющий входной скрипт, загруженный при запуске процесса Node.js, или undefined, если точка входа программы не является модулем CommonJS.
интерфейс RequireResolve
Использование в Deno
import { type RequireResolve } from "node:module";
Сигнатуры вызова
(
request: string,
options?: RequireResolveOptions,
): string Использует внутренний механизм require() для поиска расположения модуля, но вместо загрузки модуля возвращает разрешённое имя файла.
Если модуль не удаётся найти, возникает ошибка MODULE_NOT_FOUND.
Методы
paths(request: string): string[] | null Возвращает массив, содержащий пути, проверенные при разрешении request, или null, если строка request указывает на встроенный модуль, например http или fs.
интерфейс RequireResolveOptions
Использование в Deno
import { type RequireResolveOptions } from "node:module";
Свойства
paths: string[] | undefined Пути, относительно которых определяется расположение модуля. Если они заданы, эти пути используются вместо путей разрешения по умолчанию, за исключением GLOBAL_FOLDERS, например $HOME/.node_modules, которые включаются всегда. Каждый из этих путей используется как начальная точка алгоритма разрешения модуля, то есть иерархия node_modules проверяется начиная с этого расположения.
интерфейс NodeModule
Использование в Deno
import { type NodeModule } from "node:module";
Вместо этого используйте NodeJS.Module.
интерфейс NodeRequire
Использование в Deno
import { type NodeRequire } from "node:module";
Вместо этого используйте NodeJS.Require.
интерфейс RequireExtensions
Использование в Deno
import { type RequireExtensions } from "node:module";
пространство имён Module.constants
Использование в Deno
import { Module } from "node:module";
Пространства имён
Следующие константы возвращаются в поле status объекта, возвращаемого функцией enableCompileCache, чтобы указать результат попытки включить кэш компиляции модулей.
пространство имён Module.constants.compileCacheStatus
Использование в Deno
import { Module } from "node:module";
Следующие константы возвращаются в поле status объекта, возвращаемого функцией enableCompileCache, чтобы указать результат попытки включить кэш компиляции модулей.
Переменные
Кэш компиляции уже был включён ранее — предыдущим вызовом enableCompileCache или переменной среды NODE_COMPILE_CACHE=dir. Каталог, используемый для хранения кэша компиляции, будет возвращён в поле directory возвращаемого объекта.
Node.js не может включить кэш компиляции, поскольку задана переменная среды NODE_DISABLE_COMPILE_CACHE=1.
Node.js успешно включил кэш компиляции. Каталог, используемый для хранения кэша компиляции, будет возвращён в поле directory возвращаемого объекта.
Node.js не удалось включить кэш компиляции. Причиной может быть отсутствие разрешения на использование указанного каталога или различные ошибки файловой системы. Подробная информация об ошибке будет возвращена в поле message возвращаемого объекта.
псевдоним типа Module.InitializeHook
Использование в Deno
import { Module } from "node:module";
Хук initialize позволяет определить пользовательскую функцию, которая выполняется в потоке хуков при инициализации модуля хуков. Инициализация происходит при регистрации модуля хуков с помощью register.
Этот хук может получать данные из вызова register, включая порты и другие передаваемые объекты. Возвращаемое значение initialize может быть Promise; в этом случае его выполнение будет ожидаться, прежде чем продолжится выполнение основного потока приложения.
Параметры типа
Data = any Определение
(data: Data) => void | Promise<void> псевдоним типа Module.LoadHook
Использование в Deno
import { Module } from "node:module";
Хук load позволяет определить пользовательский способ интерпретации, получения и разбора URL. Он также отвечает за проверку атрибутов импорта.
Определение
(
url: string,
context: LoadHookContext,
nextLoad: (
url: string,
context?: Partial<LoadHookContext>,
) => LoadFnOutput | Promise<LoadFnOutput>,
) => LoadFnOutput | Promise<LoadFnOutput> псевдоним типа Module.ModuleFormat
Использование в Deno
import { Module } from "node:module";
Определение
"builtin"
| "commonjs"
| "commonjs-typescript"
| "json"
| "module"
| "module-typescript"
| "wasm"
псевдоним типа Module.ModuleSource
Использование в Deno
import { Module } from "node:module";
Определение
string
| ArrayBuffer
| TypedArray
псевдоним типа Module.ResolveHook
Использование в Deno
import { Module } from "node:module";
Цепочка хуков resolve отвечает за то, чтобы сообщить Node.js, где найти и как кэшировать заданную инструкцию или выражение import либо вызов require. При необходимости она может вернуть формат (например, 'module') в качестве подсказки для хука load. Если формат указан, хук load в конечном итоге отвечает за предоставление итогового значения format (и может проигнорировать подсказку, предоставленную resolve); если resolve предоставляет format, требуется пользовательский хук load, даже если он лишь передаёт значение стандартному хуку Node.js load.
Определение
(
specifier: string,
context: ResolveHookContext,
nextResolve: (
specifier: string,
context?: Partial<ResolveHookContext>,
) => ResolveFnOutput | Promise<ResolveFnOutput>,
) => ResolveFnOutput | Promise<ResolveFnOutput> переменная __dirname
Использование в Deno
import { __dirname } from "node:module";
Имя каталога текущего модуля. Оно совпадает с path.dirname() у __filename.
Тип
string переменная __filename
Использование в Deno
import { __filename } from "node:module";
Имя файла текущего модуля. Это абсолютный путь к файлу текущего модуля с разрешёнными символическими ссылками.
Для основной программы оно не обязательно совпадает с именем файла, указанным в командной строке.
Тип
string переменная Module.builtinModules
Использование в Deno
import { Module } from "node:module";
Список имён всех модулей, предоставляемых Node.js. Его можно использовать, чтобы проверить, поддерживается ли модуль сторонним разработчиком.
Примечание: список не содержит модули, имеющие только префикс, например node:test.
Тип
readonly string[] переменная Module.constants.compileCacheStatus.ALREADY_ENABLED
Использование в Deno
import { Module } from "node:module";
Кэш компиляции уже был включён ранее — предыдущим вызовом enableCompileCache или переменной среды NODE_COMPILE_CACHE=dir. Каталог, используемый для хранения кэша компиляции, будет возвращён в поле directory возвращаемого объекта.
Тип
number переменная Module.constants.compileCacheStatus.DISABLED
Использование в Deno
import { Module } from "node:module";
Node.js не может включить кэш компиляции, поскольку задана переменная среды NODE_DISABLE_COMPILE_CACHE=1.
Тип
number переменная Module.constants.compileCacheStatus.ENABLED
Использование в Deno
import { Module } from "node:module";
Node.js успешно включил кэш компиляции. Каталог, используемый для хранения кэша компиляции, будет возвращён в поле directory возвращаемого объекта.
Тип
number переменная Module.constants.compileCacheStatus.FAILED
Использование в Deno
import { Module } from "node:module";
Node.js не удалось включить кэш компиляции. Причиной может быть отсутствие разрешения на использование указанного каталога или различные ошибки файловой системы. Подробная информация об ошибке будет возвращена в поле message возвращаемого объекта.
Тип
number
© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/node/module