0

我必须使用 babel-preset-env 和 babel-preset-stage-2 才能将 webpack 用于包含扩展运算符的代码。之后,我成功地使用 webpack 构建了我的包,但是这次我在运行时遇到了生成器运行时错误。

所以首先我尝试在这个页面中做解决方案,babel-polyfill,但我的团队不希望我使用它,而是他们要求我使用 transform-runtime 插件,所以我安装了它并将它放在 babelrc 文件中但仍然得到相同生成器运行时错误,对此有任何想法吗?我应该多做些什么?

这是 babelrc 文件

{
  "presets": [
    "env",
    "stage-2",
    "es2015"
  ],
  "plugins": [
    "transform-async-to-generator",
    [
      "transform-runtime",
      {
        "helpers": false,
        "polyfill": false,
        "regenerator": true
      }
    ]
  ]
}

webpack 配置文件

var path = require('path')

module.exports = {
  entry: path.resolve(__dirname, 'partner/index.js'),
  output: {
    path: path.resolve(__dirname, './dist'),
    filename: 'partner_bundle.js'
  },
  target: 'web',
  module: {
    rules: [
      {
        test: /\.js$/, // Check for all js files
        loader: 'babel-loader',
        query: {
          presets: ['babel-preset-env', 'babel-preset-stage-2'].map(
            require.resolve
          )
        },
        exclude: /node_modules\/(?!other-module)/
      }
    ]
  },
  stats: {
    colors: true
  },
  devtool: 'source-map',
  resolve: { symlinks: false }
}

package.json 中的 babel 和 webpack 版本

"babel-core": "^6.26.0",
"babel-loader": "^7.1.2",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-polyfill": "^6.26.0",
"babel-preset-env": "^1.6.1",
"babel-preset-stage-0": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",

"webpack": "^4.0.1",
"webpack-cli": "^2.0.9"
4

1 回答 1

0

尝试使用:

{
  "env": {
    "production": {
      "plugins": ["transform-react-constant-elements"]
    }
  }
}

https://babeljs.io/docs/usage/babelrc/

于 2018-03-28T13:57:49.293 回答