学习babel时,遇到的问题,使用旧版本babel命名规则安装后运行报错,初步查找到原因是因为babel各个preset和plugin新旧不同版本之间存在兼容问题,提示使用npxbabel-upgrade可以自动升级,但是我升级失败了,提示解析错误,后来看到了这篇文章,问题得以解决。
babel升级到7.X采坑总结
最近工作比较忙,有一段时间没有写前端玩了。今天试着搭一个项目,发现各种坑,以前用起来非常好的配置文件各种报错。排查后发现原来babel升级了一个大版本,已经到7.X了,这里我总结一下升级过程中踩到的坑。
Error:Cannotfindmodule'@babel/core'
atFunction.Module._resolveFilename(module.js:547:15)
atFunction.Module._load(module.js:474:25)
atModule.require(module.js:596:17)
atrequire(internal/module.js:11:18)
....
babel如何安装
没找到@babel/core,需要把babel-core卸载掉,从新安装@babel/core
npmunbabel-core
ERRORin./src/index.jsx
Modulebuildfailed(from./node_modules/babel-loader/lib/index.js):
Error:Plugin/Presetfilesarenotallowedtoexportobjects,onlyfunctions.
...
将babel-preset-*卸载,重新安装@babel/preset-*,并且修改.babelrc中的presets。
总之,Babel用来将ES6代码转为ES5代码。安装安装命令行转码工具Babel提供babel-cli工具,用于命令行转码。