Node.js v14.21.1 文档


目录

module 模块#

Module 对象#

中英对照

当与 Module 的实例交互时提供通用的实用方法,module 变量常见于 CommonJS 模块中。 通过 import 'module'require('module') 访问。

module.builtinModules#

中英对照

Node.js 提供的所有模块的名称列表。 可用于验证模块是否由第三方维护。

此上下文中的 module模块封装器提供的对象不同。 要访问它,需要 Module 模块:

// module.mjs
// 在 ECMAScript 模块中
import { builtinModules as builtin } from 'module';// module.cjs
// 在 CommonJS 模块中
const builtin = require('module').builtinModules;

module.createRequire(filename)#

中英对照

  • filename <string> | <URL> 用于构造 require 函数的文件名。 必须是文件网址对象、文件网址字符串、或绝对路径字符串。
  • 返回: <require> require 函数
import { createRequire } from 'module';
const require = createRequire(import.meta.url);

// sibling-module.js 是 CommonJS 模块。
const siblingModule = require('./sibling-module');

module.createRequireFromPath(filename)#

中英对照

稳定性: 0 - 弃用: 改为使用 createRequire()

  • filename <string> 用于构造相对 require 函数的文件名。
  • 返回: <require> require 函数
const { createRequireFromPath } = require('module');
const requireUtil = createRequireFromPath('../src/utils/');

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

module.syncBuiltinESMExports()#

中英对照

module.syncBuiltinESMExports() 方法更新内置的 ES 模块的所有实时绑定,以匹配 CommonJS 导出的属性。 它不会在 ES 模块中添加或删除导出的名称。

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) => {
  // 它将现有的 readFile 属性与新值同步
  assert.strictEqual(esmFS.readFile, newAPI);
  // readFileSync 已从所需的 fs 中删除
  assert.strictEqual('readFileSync' in fs, false);
  // syncBuiltinESMExports() 不会从 esmFS 中删除 readFileSync
  assert.strictEqual('readFileSync' in esmFS, true);
  // syncBuiltinESMExports() 不添加名称
  assert.strictEqual(esmFS.newAPI, undefined);
});

Source Map V3 的支持#

中英对照

稳定性: 1 - 实验

与源映射缓存交互的助手。 当启用源映射解析并且在模块的页脚中找到源映射包含指令时,则会填充此缓存。

要启用源映射解析,则 Node.js 必须使用标志 --enable-source-maps 运行、或者通过设置 NODE_V8_COVERAGE=dir 启用代码覆盖率。

// module.mjs
// 在 ECMAScript 模块中
import { findSourceMap, SourceMap } from 'module';// module.cjs
// 在 CommonJS 模块中
const { findSourceMap, SourceMap } = require('module');

module.findSourceMap(path)#

中英对照

path 是文件的解析路径,应为其获取相应的源映射。

module.SourceMap#

new SourceMap(payload)#

中英对照

创建新的 sourceMap 实例。

payload 是键匹配 Source map v3 格式的对象:

sourceMap.payload#

中英对照

用于构造 SourceMap 实例的有效负载的获取器。

sourceMap.findEntry(lineNumber, columnNumber)#

中英对照

给定生成的源文件中的行号和列号,返回表示原始文件中位置的对象。 返回的对象包含以下键:

返回顶部