最近对公司的项目引入了
nanoid替换uuid的使用。但是在sentry日志中发现Unexpected token =>的错误。立马查看编译后bunld发现 nanoid 箭头函数没有被转换。所以对此记录一下原因和解决办法。
报错的原因
1.nanoid 源码是没有经过babel转换的。
查看nanoid的源码,发现依赖包的代码没有经过babel处理输出的,package.json中直接指向了ES6的源码。
2.使用了.babelrc 所以没有对node_modules中依赖进行Babel处理。
看了webpack中的 exclude 配置已经去掉了node_modules的屏蔽,所以应该是会对node_modules的依赖进行babel处理的,但是发现编译结果是没有处理。最后翻了Babel官网发现如果需要babel处理node_modules的代码需要使用babel.config.json 来配置babel而不是.babelrc。这就比较坑了,如果不细心翻查真的不知道…

解决方案
.babelrc 重命名 babel.config.json 即可…
感觉老项目有点坑,哈哈哈哈