当与 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)
#import { createRequire } from 'module';
const require = createRequire(import.meta.url);
// sibling-module.js 是 CommonJS 模块。
const siblingModule = require('./sibling-module');
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);
});
与源映射缓存交互的助手。 当启用源映射解析并且在模块的页脚中找到源映射包含指令时,则会填充此缓存。
要启用源映射解析,则 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
<string>path
是文件的解析路径,应为其获取相应的源映射。
module.SourceMap
类#new SourceMap(payload)
#payload
<Object>创建新的 sourceMap
实例。
payload
是键匹配 Source map v3 格式的对象:
file
: <string>version
: <number>sources
: <string[]>sourcesContent
: <string[]>names
: <string[]>mappings
: <string>sourceRoot
: <string>sourceMap.payload
#用于构造 SourceMap
实例的有效负载的获取器。
sourceMap.findEntry(lineNumber, columnNumber)
#给定生成的源文件中的行号和列号,返回表示原始文件中位置的对象。 返回的对象包含以下键: