为什么导入URL必须以“node:“开头

hof1towb  于 2023-02-08  发布在  Node.js
关注(0)|答案(1)|浏览(159)

我在查看节点官方文档时发现,es模块示例中节点原生模块的导入url以node:开头。
我不太使用节点,可能有一些巨大的变化发生了。所以:
1.有人能分享一些链接,我可以得到一些关于这一变化的背景?
1.如果我们不在导入url之前添加node:呢?我测试了一下,似乎一切都很好。
多谢了。

import { open } from 'node:fs/promises';

let filehandle;
try {
  filehandle = await open('thefile.txt', 'r');
} finally {
  await filehandle?.close();
}

我编写了一些节点包,并在pacakge.json中使用"type": "module",而在导入本机模块时不使用node:,我没有看到任何错误。

i7uq4tfw

i7uq4tfw1#

来自文档:
核心模块可以使用node:前缀来标识,在这种情况下,它会绕过require缓存。例如,require('node:http')将始终返回内置的HTTP模块,即使存在使用该名称的require.cache条目。

相关问题