Skip to content

0x007-import 'node:module'和'import path'的区别

关于区别

以引入path模块为例:

import path from 'node:path';import * as path from "path" :

  • 都可以在 Node.js 中用于导入 path 模块
  • import path from 'node:path': 明确指明引入node.js内置的path模块。

实际上根据Node.js 的模块解析规则,本来就会优先会加载node的核心模块。笔者认为大多数场景两者效果上无区别,但它改变了加载规则,只仅仅从核心模块里去查找。例如新版本node在核心模块如果增加了新模块,低版本node使用node:加载此模块,不会导致去别的位置查找(如果加载错了同名文件可能导致问题)。

其他相关:esbuild项目引入依赖的报错问题

esbuild配置中的platform默认是"browser",表示编译的目标平台为浏览器环境而非node环境。 这样引入某些依赖包,如果依赖包里有类似"node:xxx"的代码,自然就会报错了。

参考