>[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)
- 基础
- 什么是Node.js
- 理解 I/O 模型
- 理解node 中 I/O
- 对比node 和java 使用场景
- node 模块管理
- 内置模块 -- buffer
- 内置模块 -- fs
- fs -- 文件描述符
- fs -- 打开文件 api
- fs -- 文件读取 api
- fs -- 文件写入 api
- fs -- 创建目录 api
- fs -- 读取文件目录结构 api
- fs -- 文件状态(信息) api
- fs -- 删除文件/目录 api
- fs -- 重命名 api
- fs -- 复制文件 api
- 内置模块 -- events
- 内置模块 -- stream
- 可读流 -- Readable
- 可写流 -- Writable
- Duplex
- Transform
- 内置模块 -- http
- http -- 从客户端发起
- http -- 从服务端发起
- 内置模块 -- url
- 网络开发