关于webpack之loader,babel-loader和babel-core版本冲突问题

2,072 阅读1分钟

loader是一种打包的方案,webpack默认只识别js结尾的文件,当遇到其他格式的文件后,webpack并不知道如何去处理。此时,我们可以定义一种规则,告诉webpack当他遇到某种格式的文件后,去求助于相应的loader。

其中bable-loader能识别转换jsx文件及es6语法,babel-core是babel的核心,若是想要用babel-loader把es6的代码转换成为es5的代码,那么你就需要对应版本的babel-core

npm install --save-dev bable-loader bable-core

上述指令直接安装后,bable-loader版本可能会与bable-core版本冲突,导致运行报错

"devDependencies": {
    "babel-core": "^6.26.3", 
    "babel-loader": "^8.0.4",
    "css-loader": "^3.5.3",
    "html-webpack-plugin": "^4.3.0",
    "webpack-cli": "^3.3.11",
    "webpack-dev-server": "^3.11.0"
  },

查找资料得知:babel-loader 8.x 对应 babel-core 7.x ,babel-loader 7.x 对应 babel-core 6.x

解决方案如下:

此时删除babel-core的包,执行 npm i @babel/core -D , 使用@babel/core代替babel-core来安装