node:process 和 process 有什么区别?
What's the difference between node:process and process?
当我导入 node:process
时它工作正常。但是,当我尝试要求相同时,它会出错。
这很好用:
import process from 'node:process';
但是当我尝试要求相同时,它会抛出一个错误:
const process = require('node:process');
Error: Cannot find module 'node:process'
我很好奇 process
与 node:process
.
之间的区别是什么,它在 commonjs 和模块中都有效
此外,我正在使用 webpack 来捆绑我的 js,当我尝试 运行 我的捆绑代码并意识到 chalk
导入 node:process
、node:os
和 node:tty
。我现在该如何解决?
“node:”是一个用于加载 ECMAScript 模块的 URL 方案。因此它开始是为了“导入”,而不是“要求”。
"node:process" 只是加载 built-in“进程”模块的替代名称。
另请参阅 Node.js documentation - 您可以在“历史”标签 (12.20.0, 14.13.1)
中找到支持的最低 Node.js 版本
对于较新的 Node.js,它也应该适用于“require”(14.18.0、16.0.0)。
可以找到更多详细信息 here:node:process 总是喜欢 built-in 核心模块,而进程 可以 从文件。
import process from 'node:process';
和 import process from 'process';
是等价的。
node:
从 import
的版本 12 开始存在。
node:
URLs are supported as an alternative means to load Node.js builtin modules. This URL scheme allows for builtin modules to be referenced by valid absolute URL strings.
node:
背后的想法是明确它实际上是一个构建模块,而不是安装的模块,并避免名称冲突,与第 3 方模块。
node:
协议最初仅为 import
添加,因此特定节点版本可能支持 node:
和 import
,但不支持 require
。
在 v16.13.0(不确定从哪个 v16 版本开始)中,您也可以将它与 require
一起使用。自 v14.18 以来也被反向移植到 v14:module: add support for node:‑prefixed require(…) calls
当我导入 node:process
时它工作正常。但是,当我尝试要求相同时,它会出错。
这很好用:
import process from 'node:process';
但是当我尝试要求相同时,它会抛出一个错误:
const process = require('node:process');
Error: Cannot find module 'node:process'
我很好奇 process
与 node:process
.
此外,我正在使用 webpack 来捆绑我的 js,当我尝试 运行 我的捆绑代码并意识到 chalk
导入 node:process
、node:os
和 node:tty
。我现在该如何解决?
“node:”是一个用于加载 ECMAScript 模块的 URL 方案。因此它开始是为了“导入”,而不是“要求”。
"node:process" 只是加载 built-in“进程”模块的替代名称。
另请参阅 Node.js documentation - 您可以在“历史”标签 (12.20.0, 14.13.1)
中找到支持的最低 Node.js 版本对于较新的 Node.js,它也应该适用于“require”(14.18.0、16.0.0)。
可以找到更多详细信息 here:node:process 总是喜欢 built-in 核心模块,而进程 可以 从文件。
import process from 'node:process';
和 import process from 'process';
是等价的。
node:
从 import
的版本 12 开始存在。
node:
URLs are supported as an alternative means to load Node.js builtin modules. This URL scheme allows for builtin modules to be referenced by valid absolute URL strings.
node:
背后的想法是明确它实际上是一个构建模块,而不是安装的模块,并避免名称冲突,与第 3 方模块。
node:
协议最初仅为 import
添加,因此特定节点版本可能支持 node:
和 import
,但不支持 require
。
在 v16.13.0(不确定从哪个 v16 版本开始)中,您也可以将它与 require
一起使用。自 v14.18 以来也被反向移植到 v14:module: add support for node:‑prefixed require(…) calls