Spec-Zone.ru › Deno 2

модуль

Использование в Deno

import * as mod from "node:module";

класс Module

Использование в Deno

import { Module } from "node:module";
Совместимость с Deno

Метод register является неработающей заглушкой.

Конструкторы

Module(
id: string,
parent?: Module,
)
новое

интерфейс Module

наследует [NodeJS.Module]
Совместимость с Deno

Метод register является неработающей заглушкой.

Совместимость с Deno

Метод register является неработающей заглушкой.

Свойства

children: Module[]

Объекты модулей, впервые загруженных этим модулем.

exports: any

Объект module.exports создаётся системой Module. Иногда это неприемлемо: многие хотят, чтобы их модуль был экземпляром какого-либо класса. Для этого присвойте нужный объект экспорта свойству module.exports.

filename: string

Полный путь к файлу модуля.

id: string

Идентификатор модуля. Обычно это полный путь к файлу.

isPreloading: boolean

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

loaded: boolean

Завершена ли загрузка модуля или она ещё выполняется.

parent:
Module
| null
| undefined
устарело

Модуль, который первым загрузил этот модуль, или null, если текущий модуль является точкой входа текущего процесса, или undefined, если модуль был загружен чем-либо, что не является модулем CommonJS (например, REPL или import).

path: string

Имя каталога модуля. Обычно оно совпадает со значением path.dirname() для module.id.

paths: string[]

Пути поиска модуля.

Методы

require(id: string): any

Метод module.require() позволяет загрузить модуль так, как если бы require() был вызван из исходного модуля.

пространство имён Module

Совместимость с Deno

Метод register является неработающей заглушкой.

Классы

Module.SourceMap
Документация отсутствует
  • findEntry
  • findOrigin
  • payload

Функции

Module.createRequire
Документация отсутствует
Module.enableCompileCache

Включает кэш компиляции модулей в текущем экземпляре Node.js.

Module.findPackageJSON
// /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'
Module.findSourceMap

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

Module.flushCompileCache

Записывает на диск кэш компиляции модулей, накопленный при загрузке модулей в текущем экземпляре Node.js. Функция возвращает управление после завершения всех операций записи в файловую систему, независимо от их успешности. При возникновении ошибок функция завершится без уведомления, поскольку промахи кэша компиляции не должны влиять на фактическую работу приложения.

Module.getCompileCacheDir
Документация отсутствует
Module.isBuiltin
Документация отсутствует
Module.register

Регистрирует модуль, экспортирующий хуки для настройки разрешения модулей и поведения их загрузки в Node.js. См. раздел Хуки настройки.

Module.runMain
Документация отсутствует
Module.stripTypeScriptTypes

module.stripTypeScriptTypes() удаляет аннотации типов из кода TypeScript. Эту функцию можно использовать для удаления аннотаций типов перед запуском кода TypeScript с помощью vm.runInContext() или vm.compileFunction(). По умолчанию функция выдаёт ошибку, если код содержит требующие преобразования возможности TypeScript, например Enums; дополнительную информацию см. в разделе удаление аннотаций типов. Если значение режима — 'transform', функция также преобразует возможности TypeScript в JavaScript; дополнительную информацию см. в разделе преобразование возможностей TypeScript. Если значение режима — 'strip', карты исходного кода не создаются, поскольку позиции сохраняются. Если задано sourceMap, а значение режима — 'strip', будет выдана ошибка.

Module.syncBuiltinESMExports

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

Module.wrap
Документация отсутствует

Интерфейсы

Module.EnableCompileCacheResult
Документация отсутствует
  • directory
  • message
  • status
Module.ImportAttributes
Документация отсутствует
  • type
Module.LoadFnOutput
Документация отсутствует
  • format
  • shortCircuit
  • source
Module.LoadHookContext
Документация отсутствует
  • conditions
  • format
  • importAttributes
Module.RegisterOptions
Документация отсутствует
  • data
  • parentURL
  • transferList
Module.ResolveFnOutput
Документация отсутствует
  • format
  • importAttributes
  • shortCircuit
  • url
Module.ResolveHookContext
Документация отсутствует
  • conditions
  • importAttributes
  • parentURL
Module.SourceMapConstructorOptions
Документация отсутствует
  • lineLengths
Module.SourceMapPayload
Документация отсутствует
  • file
  • mappings
  • names
  • sourceRoot
  • sources
  • sourcesContent
  • version
Module.SourceMapping
Документация отсутствует
  • generatedColumn
  • generatedLine
  • originalColumn
  • originalLine
  • originalSource
Module.SourceOrigin
Документация отсутствует
  • columnNumber
  • fileName
  • lineNumber
  • name
Module.StripTypeScriptTypesOptions
Документация отсутствует
  • mode
  • sourceMap
  • sourceUrl

Пространства имён

Module.constants
Документация отсутствует

Псевдонимы типов

Module.InitializeHook

Хук initialize позволяет определить пользовательскую функцию, которая выполняется в потоке хуков при инициализации модуля хуков. Инициализация происходит при регистрации модуля хуков с помощью register.

Module.LoadHook

Хук load позволяет задать пользовательский способ определения того, как следует интерпретировать, получать и анализировать URL. Он также отвечает за проверку атрибутов импорта.

Module.ModuleFormat
Документация отсутствует
Module.ModuleSource
Документация отсутствует
Module.ResolveHook

Цепочка хуков resolve отвечает за указание Node.js, где найти и как кэшировать заданную инструкцию или выражение import либо вызов require. При необходимости она может вернуть формат (например, 'module') в качестве подсказки для хука load. Если формат указан, хук load в конечном счёте отвечает за предоставление окончательного значения format (и может проигнорировать подсказку, предоставленную resolve); если resolve предоставляет format, требуется пользовательский хук load, даже если он лишь передаёт значение стандартному хуку Node.js load.

Переменные

Module.builtinModules

Список имён всех модулей, предоставляемых 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";
createRequire(path: string | URL): Require

Параметры

path: string | URL

Имя файла, используемое для создания функции require. Должно быть объектом URL файла, строкой URL файла или строкой с абсолютным путём.

Тип возвращаемого значения

Require

функция 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
необязательный

Необязательный путь для указания каталога, в котором будет храниться кэш компиляции или из которого он будет извлекаться.

Тип возвращаемого значения

EnableCompileCacheResult

функция Module.findPackageJSON

Использование в Deno

import { Module } from "node:module";
findPackageJSON(
specifier: string | URL,
base?: string | URL,
): 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 | undefined

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

Параметры

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>(
specifier: string | URL,
parentURL?: string | URL,
options?: RegisterOptions<Data>,
): 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,
): string

module.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: модуля.

Методы

resolve(
specifier: string,
parent?:
string
| URL
| undefined
,
): string

Предоставляет функцию разрешения путей относительно каждого модуля, возвращающую строку URL.

Второй параметр parent используется только при включённом флаге команды --experimental-import-meta-resolve.


интерфейс Module.EnableCompileCacheResult

Использование в Deno

import { Module } from "node:module";

Свойства

status: number

Одна из констант constants.compileCacheStatus

message: string
необязательный

Если Node.js не удаётся включить кэш компиляции, здесь содержится сообщение об ошибке. Устанавливается только в том случае, если status равно module.constants.compileCacheStatus.FAILED.

directory: string
необязательный

Если кэш компиляции включён, здесь содержится каталог, в котором он хранится. Устанавливается только в том случае, если status равно module.constants.compileCacheStatus.ENABLED или module.constants.compileCacheStatus.ALREADY_ENABLED.


интерфейс Module.ImportAttributes

расширяет [NodeJS.Dict]<string>

Использование в Deno

import { Module } from "node:module";

Свойства

type: string | undefined
необязательный

интерфейс Module.LoadFnOutput

Использование в Deno

import { Module } from "node:module";

Свойства

format: ModuleFormat
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 (может быть промежуточным значением).

importAttributes: ImportAttributes

Объект, пары ключ-значение которого представляют утверждения для импортируемого модуля


интерфейс Module.RegisterOptions

Использование в Deno

import { Module } from "node:module";

Параметры типа

Data

Свойства

parentURL:
string
| URL
| undefined
необязательный

Если необходимо разрешить specifier относительно базового URL, например import.meta.url, можно передать этот URL здесь. Это свойство игнорируется, если parentURL передан вторым аргументом.

data: Data | undefined
необязательный

Любое произвольное клонируемое значение 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

importAttributes: ImportAttributes

Объект, пары ключ-значение которого представляют утверждения для импортируемого модуля

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 и локальных файлов.

Свойства

cache: Dict<Module>

При загрузке модули кэшируются в этом объекте. Удалив пару ключ-значение из этого объекта, вы заставите следующий вызов require перезагрузить модуль. Это не относится к собственным дополнениям, повторная загрузка которых приведёт к ошибке.

extensions: RequireExtensions
устарело

Указывает require, как обрабатывать определённые расширения файлов.

main: Module | undefined

Объект Module, представляющий входной скрипт, загруженный при запуске процесса Node.js, или undefined, если точка входа программы не является модулем CommonJS.

resolve: RequireResolve

интерфейс 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

расширяет [NodeJS.Module]

Использование в Deno

import { type NodeModule } from "node:module";
Устарело

Вместо этого используйте NodeJS.Module.


интерфейс NodeRequire

расширяет [NodeJS.Require]

Использование в Deno

import { type NodeRequire } from "node:module";
Устарело

Вместо этого используйте NodeJS.Require.


интерфейс RequireExtensions

расширяет Dict<(
module: Module,
filename: string,
) => any>

Использование в Deno

import { type RequireExtensions } from "node:module";

Свойства

.js: (
module: Module,
filename: string,
) => any
.json: (
module: Module,
filename: string,
) => any
.node: (
module: Module,
filename: string,
) => any

пространство имён Module.constants

Использование в Deno

import { Module } from "node:module";

Пространства имён

Module.constants.compileCacheStatus

Следующие константы возвращаются в поле status объекта, возвращаемого функцией enableCompileCache, чтобы указать результат попытки включить кэш компиляции модулей.


пространство имён Module.constants.compileCacheStatus

Использование в Deno

import { Module } from "node:module";

Следующие константы возвращаются в поле status объекта, возвращаемого функцией enableCompileCache, чтобы указать результат попытки включить кэш компиляции модулей.

Переменные

Module.constants.compileCacheStatus.ALREADY_ENABLED

Кэш компиляции уже был включён ранее — предыдущим вызовом enableCompileCache или переменной среды NODE_COMPILE_CACHE=dir. Каталог, используемый для хранения кэша компиляции, будет возвращён в поле directory возвращаемого объекта.

Module.constants.compileCacheStatus.DISABLED

Node.js не может включить кэш компиляции, поскольку задана переменная среды NODE_DISABLE_COMPILE_CACHE=1.

Module.constants.compileCacheStatus.ENABLED

Node.js успешно включил кэш компиляции. Каталог, используемый для хранения кэша компиляции, будет возвращён в поле directory возвращаемого объекта.

Module.constants.compileCacheStatus.FAILED

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

переменная exports

Использование в Deno

import { exports } from "node:module";

Переменная exports доступна в области видимости уровня файла модуля; ей присваивается значение module.exports до выполнения модуля.

Тип

Module["exports"]

переменная module

Использование в Deno

import { module } from "node:module";

Ссылка на текущий модуль.

Тип

Module

переменная 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

переменная require

Использование в Deno

import { require } from "node:module";

Тип

Require

© 2018–2025 the Deno authors
Licensed under the MIT License.
https://docs.deno.com/api/node/module

Spec-Zone.ru

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