「node:」前缀是指附加在Node的核心模块名称前面的内容,在中文中的含义是什么?
这是什么?
Node.js 18已经发布了,是吧!
在变更中,可能会添加名为node:test的核心模块,但我一开始就不知道node是什么,所以我做了一下调查。
节点是什么?
在使用require / import导入Node.js的核心模块时,可以添加node:前缀来明确它是Node的核心模块。类似于以下的用法。
// 以下2つは同じ
const fs = require("fs");
const fs = require("node:fs");
// 以下2つは同じ
import fs from "fs";
import fs from "node:fs";
可以为 Node.js 的核心模块添加,加上 node: 或者不加都不会影响其运行。
另外,据了解,Node.js 14 的次要版本升级似乎增加了 node: 前缀。
节点:应该给它加上前缀吗?
如果有结论的话,最好还是提供一个。
这项更改说明了 node:test 是 Node.js 18 中包含的一个核心模块,需要使用 node: 前缀。
https://nodejs.org/ja/blog/release/v18.0.0/
node:test模块有助于创建以TAP格式报告结果的JavaScript测试。要使用它,请使用以下方式导入:
import test from ‘node:test’;
该模块仅在node:协议下可用。
考虑到未来可能会出现更多像node:test这样的模块,现在开始熟悉一下可能是个不错的选择。
最后
通过我的调查,我发现”node:”前缀好像已经存在了很久,这让我感到惊讶。
希望通过这次的”node:test”,它能够更广泛地传播下去。
参考文献
-
- Node.js 18 リリースについて
https://nodejs.org/ja/blog/announcements/v18-release-announce/
https://nodejs.org/ja/blog/release/v18.0.0/
node:プレフィックス追加について
https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V14.md#2021-09-28-version-14180-fermium-lts-targos
https://github.com/nodejs/node/issues/36098
require.cacheの動作について
https://nodejs.org/dist/latest-v18.x/docs/api/modules.html#requirecache