节点:进程和进程有什么区别?

Uda*_*ani 8 javascript node.js chalk webpack

当我导入时node:process它工作正常。但是,当我尝试要求相同时,它会给出错误。

这工作正常:

import process from 'node:process';
Run Code Online (Sandbox Code Playgroud)

但是当我尝试要求相同时,它会抛出错误:

const process = require('node:process');
Run Code Online (Sandbox Code Playgroud)

Error: Cannot find module 'node:process'

我很好奇process在 commonjs 和 module 中都可以使用的 与node:process.

另外,后续,我使用 webpack 来捆绑我的 js,当我尝试运行捆绑的代码并意识到chalk导入node:process和时node:os,我发现了这个错误node:tty。我现在该如何解决这个问题?

t.n*_*ese 5

import process from \'node:process\';import process from \'process\';是等价的。

\n

node:自版本 12 以来就存在import

\n
\n

node:支持 URL 作为加载 Node.js 内置模块的替代方法。此 URL 方案允许通过有效的绝对 URL 字符串引用内置模块。

\n
\n

背后的想法node:是明确它实际上是一个内置模块,而不是安装的模块,并避免与第 3 方模块发生名称冲突。

\n

node:最初添加该协议只是为了import让特定的节点版本可能支持node:withimport但不支持 with require

\n

在 v16.13.0(不确定从哪个 v16 版本开始)中,您还可以将其与require. 并且自 v14.18 起也向后移植到 v14:模块:添加对节点:\xe2\x80\x91prefixed require(\xe2\x80\xa6) 调用的支持

\n


Jef*_*Son 1

“node:”是用于加载 ECMAScript 模块的 URL 方案。因此,它开始于“导入”,而不是“要求”。

“node:process”只是加载内置“process”模块的替代名称。

另请参阅Node.js 文档- 您可以在“历史记录”标签内找到支持的最低 Node.js 版本(12.20.0、14.13.1)

对于较新的 Node.js,它也应该可用于“require”(14.18.0、16.0.0)。

更多细节可以在这里找到:node:process 总是更喜欢内置的核心模块,而 process可以从文件加载。