commonjs:
var exports = module.exports
tsconfig.json
esModuleInterop: true
开发npm库时,让ts编译后的内容兼容 代码中的commonjs和esmodule 导入方式。
实际效果是:
所有的 import XXX from ‘xxx’; 都被做了处理,如果 xxx 包不含 default 导出,或原本就是 cjs 。为 ‘xxx’ 添加了 default(所有xxx的内容就是default),相当于添加了 module.exports.default = module.exports.
也就是说开启了该选项,用ts编译的开发中,像 fs ,path这种纯 cjs 模块,默认 es 的 default 导入方式为导入所有内容,而不需要每次都写:
import * as XX from ‘xxx’; 来导入cjs的内容。
相当于给自己省事,或者说对于某些原先用babel全套流程写的代码,不需要做额外兼容处理了。