reactjs - 如何升级到 Babel 7

标签 reactjs babeljs webpack-4 babel-loader

我尝试将 Webpack 和 Babel 分别升级到 4、7,但无法正常工作。还有official doc对升级没有太大帮助。

我遇到以下问题

compiler error: ERROR in Cannot find module '@babel/core' @ multi main

我正在使用的依赖项:

"babel-core": "^6.26.3",
"babel-eslint": "^9.0.0",
"babel-loader": "^8.0.0",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-plugin-transform-object-rest-spread": "^6.26.0",
"babel-polyfill": "^6.26.0",
"babel-preset-env": "^1.7.0",
"babel-preset-react": "^6.24.1",
"webpack": "^4.15.0",
"webpack-cli": "^3.0.8",
"webpack-dev-server": "^3.1.4"

接下来我可以尝试什么?

最佳答案

使用babel-upgrade

node@10.15.3npm@6.4.1babel@7.4.0 上测试

您可以使用以下脚本。 (仅限节点 5+ 上的 npx)

npx babel-upgrade --write

--write 标志将更新写入 package.json 和 .babelrc。

您最终将对 package.json 进行以下修改:

"devDependencies": {
    "@babel/core": "^7.4.0",
    "@babel/plugin-proposal-class-properties": "^7.0.0",
    "@babel/plugin-proposal-json-strings": "^7.0.0",
    "@babel/plugin-proposal-private-methods": "^7.4.0",
    "@babel/plugin-syntax-dynamic-import": "^7.0.0",
    "@babel/plugin-syntax-import-meta": "^7.0.0"
}

.babelrc

{
  "plugins": [
    "@babel/plugin-syntax-dynamic-import",
    "@babel/plugin-syntax-import-meta",
    [
      "@babel/plugin-proposal-class-properties"
    ],
    "@babel/plugin-proposal-json-strings",
    [
      "@babel/plugin-proposal-private-methods"
    ]
  ]
}

在上述插件中,如果您选择实现私有(private)属性,则需要 @babel/plugin-proposal-class-properties @babel/plugin-proposal-private-methods 才能使私有(private)属性正常工作。

如果您使用 eslint,请不要忘记将解析器设置为 babel-eslint,就像在 .eslintrc 文件中一样:

{
    "parser": "babel-eslint"
}

关于reactjs - 如何升级到 Babel 7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52157996/

相关文章:

javascript - 如何使用 MiniCssExtractPlugin 控制 CSS 的顺序?

javascript - 无法将图像文件从 React 前端发布到 Express 和 MySQL

javascript - JSX - Javascript 插入/奇怪的参数?

javascript - 并排 react 传单

javascript - 如何使用 Babel 将 jQuery 的 ECMA6 导入转换为 UMD 包装器?

javascript - 在 webpack 中使用导入内联单个 javascript 文件

javascript - 在 React 中将对象从子组件传递到父组件

javascript - 将 Mocha 与 Babel 编译器一起使用时不需要模块

node.js - ES2015 模块无法在 Node.js 和 Babel.js 中工作?

node.js - npm start 使用 React.js 给出 webpack cli 错误