吐血总结babel 7.xa版本+Webpack4.x配置

安装babel插件,你踩坑了吗?

不踩不知道,一踩吓一跳,babel 7 是2018.8 发布,做了很大的语法改版 今天试了试,运行了下以前写的代码,发现各种报错,在这里总结下升级过程中遇到的一些细节问题。

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
参考了官方文档:https://www.babeljs.cn/docs/setup/#installation

安装

由于它的语法做了大的改变,我重装里面的一些包
删除node_modules 全部包 重装

-D表示安装到本地依赖环境
-S表示安装到生产环境

首先 确保你已经装了webpackwebpack-dev-server

npm install webpack -D
npm install web-dev-server -D
npm install webpack-cli -D    //webpack4.x以上可能要装webpack-cli

话不多说 直接上代码:运行一下命名

npm install babel-loader@8.0.0-beta.0 @babel/core @babel/preset-env webpack
npm install @babel/plugin-proposal-class-properties -D
npm install @babel/plugin-transform-runtime -D
npm install @babel/runtime

ok 以上装完毕,接下来

解释一下:

在babel 7.x版本中
babel-core变为 @babel/core 语法变了

npm install babel-loader babel-core babel-preset-env webpack
变为:npm install babel-loader@8.0.0-beta.0 @babel/core @babel/preset-env webpack

最终装好了还是要在配置文件里面配置下啦

安装包:

package.json 文件:装的包会自动填写到里面
"dependencies": {
    "@babel/runtime": "^7.6.3",
    "babel-loader": "^8.0.0-beta.0",
  },
  "devDependencies": {
    "@babel/core": "^7.6.3",
    "@babel/plugin-proposal-class-properties": "^7.5.5",
    "@babel/plugin-transform-runtime": "^7.6.2",
    "@babel/preset-env": "^7.6.3",
    "webpack": "^4.41.0",
    "webpack-cli": "^3.3.9",
    "webpack-dev-server": "^3.8.2"
  }
  
写.babelrc文件:需手动在项目的根目录里面创建

需注意:这个文件的格式严格按照json格式

{
  "presets": ["@babel/preset-env"],
  "plugins": [
    "@babel/plugin-transform-runtime",
    "@babel/plugin-proposal-class-properties"
  ]
}
配置 webpack 文件
module:{
        rules:[{
             test:/.js$/,
             use:'babel-loader',
            exclude: /node_modules/
        }]
    }

exclude:的意思是node_modules 包里的js文件 除外,因为他里面的js文件不需要我们去转化
在配置loader的规则时,需把node_modules目录里的js 排除,原因:
1.如果不排除,node_modules,则babel会吧node_modules的js文件也打包编译,这样速度非常慢 非常消耗CPU
2.如果babel 吧node_modules所有的js都转换了 项目会无法运行

总结:

这次升级,功能上有什么变化我就不在这里写了,大家可以自行搜索
总的来说,babel舍弃了以前的 babel-- 的命名方式,改成了@babel/-
修改依赖和.babelrc文件后就能正常启动项目了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip基于Django+python编写开发的毕业生就业管理系统支持学生教师角色+db数据库(毕业设计新项目).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值