最近对公司的项目引入了
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
即可…
感觉老项目有点坑,哈哈哈哈