ES项目如何导入 CommonJS 文件 import 报错 does not provide an export named ‘default‘
问题所在
有时候在 ES 项目中需要使用某个CommonJS标准文件,使用 import 语法导入文件就会报错。
问题的原因是CommonJS文件一般默认有 exports、define以及AMD导出,并没有ES模块的 export 导出方式。
如何解决
一般AI会告诉你,使用 require 导入,修改 package.json 改变 type: module,或者是动态导入 import等,改完还是一样。
如果是本地 CommonJS 文件,直接修改,伪造 exports,并用 ES 的导出方式,你看过源码就知道,匿名自执行函数中封装了 exports 的支持,于是顺藤摸瓜,构造一下即可。
// 打开你的 CommandJS 文件,修改// 开头,构造
let module = {exports: {}
}let exports = {}... 源码部分,无需动它// 结尾,导出
export default module.exports