企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
>[success] # node 的模块管理 >[danger] ##### 对node:module\_name 这种方式 补充说明 `node:module_name` 这种方式是 Node.js v13.x.x 版本之后增加的语法,用于引入 Node.js 内置模块。在早期的 Node.js 版本中,为了区分内置模块和第三方模块或自定义模块,需要使用 `require('path')` 的方式来引入内置模块 `path`,而使用 `require('./path')` 或 `require('../path')` 的方式来引入自定义模块或第三方模块。这种方式虽然可以区分内置模块和第三方模块或自定义模块,但是容易混淆和出错。 为了解决这个问题,**Node.js v13.x.x 版本引入了新的语法 `node:module_name`**,用于显式地引入 Node.js 内置模块。使用这种语法时,可以省略掉内置模块所在的文件夹路径,只需要在 `node:` 后面跟上模块的名称即可。这样可以更加清晰地区分内置模块和第三方模块或自定义模块,并且提高了代码的可读性和可维护性。 需要注意的是,这种语法只适用于 Node.js 内置模块,不能用于引入第三方模块或自定义模块。 **在 Node.js v12.0.0 版本中,就已经支持 ES6 模块的导入和导出了**,但默认情况下仍然使用 CommonJS 模块系统。如果要使用 ES6 模块系统,需要在文件顶部添加 `"type": "module"`。`import { access, constants } from 'node:fs/promises'`这种语法是在 Node.js v13.x.x 版本中才开始支持的,用于显式地引入 Node.js 内置模块 `fs/promises`。如果使用较旧版本的 Node.js,可以使用 `import { access, constants } from 'fs/promises'` 的方式来导入 `fs/promises` 模块。 [链接](https://github.com/nodejs/node/pull/35498/commits)