node

38 阅读1分钟

node

npm 包管理

package.json和package-lock

package.json 与 package-lock.json 的关系 - 掘金 (juejin.cn)

ES module和 commonJS 的区别

ES module

  • 使用 export 导出,import导入
  • 预编译时加载
  • import()是异步函数,返回一个promise对象,可以用then接收
  • 在 esm 中 this 指向 undefined

commonJS

  • 使用 export \exports default导出,require导入
  • 运行时加载
  • require()是同步函数
  • 在 cjs 中 this 指向当前模块

1698582046977.png

在上图中,因为cjs是运行时加载,所以执行完第一行后发现没有a.js才报错;而ESM是在预编译时加载,一开始就报错。

条件引入时:

1698582267909.png

Node.js标准课程:7.模块系统_哔哩哔哩_bilibili