Babel 7.5将指向babel-preset-es2015而非@babel/preset-env

3

我安装了 babel 7.5 版本,应该是目标预设环境包,但不确定为什么它正在寻找 'babel-preset-es2015'。

你们能否建议我犯了什么错误?以下是我的代码

package.json

{
  "name": "",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "webpack-dev-server --mode development --open --hot",
    "build": "webpack --mode production"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "react": "^16.9.0",
    "react-dom": "^16.9.0",
    "webpack": "^4.39.2",
    "webpack-cli": "^3.3.7",
    "webpack-dev-server": "^3.8.0"
  },
  "devDependencies": {
    "@babel/core": "^7.5.5",
    "@babel/preset-env": "^7.5.5",
    "@babel/preset-react": "^7.0.0",
    "babel-loader": "^8.0.6",
    "html-webpack-plugin": "^3.2.0"
  }
}

.babelrc

{
    "presets": [
        "@babel/preset-env",
        "@babel/preset-react"
    ]
}

以下为错误信息:

模块构建失败(来自于 ./node_modules/babel-loader/lib/index.js):
错误:无法从 'D:\Shashank\Projects\UploadUtility' 找到模块 'babel-preset-es2015'

1个回答

3

你好@Shashank Srivastava,

webpack.config.js文件中,你有一个module属性。

module: {
      rules: [
         {
            test: /\.jsx?$/,
            exclude: /node_modules/,
            loader: 'babel-loader',
            query: {
               presets: ['es2015', 'react'] // here is the problem!
            }
         }
      ]
   },

我发现旧有的预设术语是问题的症结所在。在这种情况下,对于Babel 7.5+,正确的预设名称是"@babel/preset-env"和"@babel/preset-react"。
简而言之,您已经在.babelrc文件中拥有新的正确预设名称,因此应更新webpack.config.js文件以使用新的预设名称。请注意不要删除任何HTML标签。
query: {
   presets: ["@babel/preset-env", "@babel/preset-react"] // updated preset names
}

这将指示babel-loader查找并加载正确的预设。

这个解决方案对我起了作用,希望对你也有作用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接