babel 版本原因运行报错,解决办法

学习 babel 时,遇到的问题,使用旧版本 babel 命名规则安装后运行报错,初步查找到原因是因为 babel 各个preset和plugin新旧不同版本之间存在兼容问题,提示使用 npx babel-upgrade 可以自动升级,但是我升级失败了,提示解析错误,后来看到了这篇文章,问题得以解决。现在被我原封不动的给扒了过来当笔记(复制,主要还是懒  [手动狗头])

babel 升级到7.X采坑总结

最近工作比较忙,有一段时间没有写前端玩了。今天试着搭一个项目,发现各种坑,以前用起来非常好的配置文件各种报错。排查后发现原来babel升级了一个大版本,已经到7.X了,这里我总结一下升级过程中踩到的坑。


Error: Cannot find module '@babel/core'
babel-loader@8 requires Babel 7.x (the package '@babel/core'). If you'd like to use Babel 6.x ('babel-core'), you should install 'babel-loader@7'.
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    ....

没找到@babel/core,需要把babel-core卸载掉,从新安装@babel/core
npm un babel-core
npm i -D @babel/core


ERROR in ./src/index.jsx
Module build failed (from ./node_modules/babel-loader/lib/index.js):Error: Plugin/Preset files are not allowed to export objects, only functions.
...

babel-preset-*卸载,重新安装@babel/preset-*,并且修改 .babelrc中的 presets

比如我的

npm:- babel-preset-env+ @babel/preset-env- babel-preset-react+ @babel/preset-react- babel-preset-stage-0

.babelrc:- "presets": ["react", "env", "stage-0", "mobx"]+ "presets": ["@babel/preset-react", "@babel/preset-env", "mobx"]

除了上述的preset,我还用了babel-preset-mobx
但是没找到 @babel/preset-mobx,从babel-preset-mobx git提交日志上看,作者已经支持了最新的babel。在之后的测试中,发现mobx的功能也能正常使用。
另外,stage-*已弃用


ERROR in ./src/index.jsx
Module build failed (from ./node_modules/babel-loader/lib/index.js):TypeError: this.setDynamic is not a functionat PluginPass.pre
    ...

这次是插件了,一样把babel-plugin-*卸载,重新安装@babel/plugin-*
然后修改.babelrc文件
具体的包名可以在 npm仓库 里找

最终文件

.babelrc:

{"presets": ["@babel/preset-env", "@babel/preset-react", "mobx"],"plugins": ["@babel/plugin-proposal-object-rest-spread","@babel/plugin-transform-runtime"
    ]
}

package.json:

"devDependencies": {"@babel/core": "^7.1.0","@babel/plugin-proposal-object-rest-spread": "^7.0.0","@babel/plugin-transform-runtime": "^7.1.0","@babel/preset-env": "^7.1.0","@babel/preset-react": "^7.0.0","babel-loader": "^8.0.2""babel-preset-mobx": "^2.0.0",
    ...
  },  "dependencies": {"@babel/runtime": "^7.0.0",
    ...
  }

总结

这次升级,功能上有什么变化我就不在这里写了,大家可以自行搜索

总的来说,babel舍弃了以前的 babel-*-* 的命名方式,改成了@babel/*-*
修改依赖和.babelrc文件后就能正常启动项目了。
webpack不用修改(除非你是webpack 3.Xwebpack 4.X

上面的只是我遇到的问题,如果还有其他问题,可以参考资料 升级指南 Upgrade to Babel 7

                本作品系作者:Shurlormes原创 , 采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议

转自:https://segmentfault.com/a/1190000016458913   作者:Shurlormes

(0)

相关推荐

  • ES6 - 基础学习(1): 开发环境搭建

    现在Chrome浏览器已经很好的支持ES6了,但有些低版本的浏览器或其他浏览器还是不支持ES6的语法,因此实际项目开发或上线过程中就需要把ES6的语法转变成ES5的语法.项目开发过程中 Webpack ...

  • Jest和enzyme 前端单元测试工具

    什么是Jest? Jest是一个令人愉悦的JavaScript测试框架,其重点是简单性. 它适用于使用以下项目的项目:Babel,TypeScript,Node,React,Angular,Vue等! ...

  • 安装react-redux后编译报错

    安装了react-redux后,npm start报下面错误 Failed to compile. ./node_modules/_react-redux@7.2.0@react-redux/es/c ...

  • 详解babel8.X版本用法填坑

    话说在前端这一块有一件让人非常匪夷所思的事情,就是包括webpack,包括几乎所有常用的前端模块(包),只要有大版本的更新,必然跟之前的版本大变脸,连api都给你变了,于是出现各种坑,真不知道为什么要 ...

  • node.js之npm

    node.js之npm

  • win10系统VMware虚拟机无法运行(报错)的解决办法

    现象描述: 1.Windows更新后第一次打开VMware,出现连接异常(报错如下),而且左边状态栏的虚拟机也无法操作,新建虚拟机也无法显示在我的计算机,在过程中也出现"该虚拟机似乎正在使用 ...

  • Photoshop 2019运行报错,一键修复帮你解决!

    本来今天准备做Photoshop 2019的推送,但是要提前验证呀,下载又很慢,运行过程出现下面的提示. 丢失d3dcompiler_47的错误提示. 在以前推送的文章:电脑常识:电脑提示dll文件丢 ...

  • (1条消息) Pycharm一直报No module named 'requests'错解决办法

    前言:如果想直接看答案的,下拉到最后查看 这个问题折腾了2天,终于弄好了. 查找了网上的各种解说,有的情况也不是适用我这个版本 按照下面的步骤进行: 1.首先检查是否安装了requests l 安装命 ...

  • 【个人经验】龋病树脂充填治疗术后敏感,4个原因和3个解决办法

    最近微信文章不再按时间顺序排列. 这可能让你无法及时看到我们的文章. 为了以后我们能更好滴见面, 我们想邀请你将公众号设为"星标",或为文章点个"在看"! 龋病 ...

  • 天车啃轨的原因及分析及解决办法[参照].pdf

    一.什么是天车的啃轨?啃轨有哪些危害? 啃轨:即天车大车或小车在运行过程中,轮缘与轨道侧面接触, 产生水平侧向推力,引起轮缘与轨道的摩擦及磨损. 危害:1.正常使用条件下车轮的寿命 10 年左右,发生 ...

  • 辽宁舰出海总有鲨鱼伴游,专家虽已找到原因,却没有解决办法

    众所周知,辽宁舰是由乌克兰服役的瓦良格号航母改装而成的,它属于是我国的第一艘航母,非常具有意义.刚刚回国的时候,引起全球性的关注,下水时又吸引到众人的目光,然而很多人不知道的是,回来的过程有多么艰难, ...

  • ECSHOP info: Can't Connect MySQL Server(localhost:3306)报错解决

    ECSHOP教程 来源: ECSHOP教程网www.ecshop119.com 时间:2014-07-07 ECSHOP教程分类:ECSHOP安装教程 很多人新人在搬家过程,打开ecshop网站会出现 ...

  • 玩游戏运行报错?电脑游戏环境检测工具分享!

    运行游戏报错是我们使用电脑过程中经常会碰到的问题,特别是一些大型单机游戏,通常会有下面这种报错: 或者下面这种报错: 总的来说就是缺少各种dll文件,其实就是我们说的缺少运行库. 为什么会这样呢?那是 ...

  • 大型单机游戏运行报错,跑不起来是怎么回事?

    有一位朋友留言想了解单机游戏运行环境这一块的知识,而且前段时间确实给另外一位朋友装机器,然后安装大型单机游戏的时候,遇到这方面的问题,如果找不到合适的库文件还真是没啥好办法.今天来谈谈这个问题,不一定 ...