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 指向当前模块
在上图中,因为cjs是运行时加载,所以执行完第一行后发现没有a.js才报错;而ESM是在预编译时加载,一开始就报错。
条件引入时: