webpack 4反应意外的令牌...(传播运算符)

Mur*_*nth 2 javascript reactjs webpack babeljs

最近,我已经Webpack 4为我的react应用程序实现了设置。

webpack.config.js看起来像这样

const HtmlWebPackPlugin = require('html-webpack-plugin');

const htmlWebpackPlugin = new HtmlWebPackPlugin({
  template: './src/index.js',
  filename: './index.html',
});

module.exports = {
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: {
          loader: 'babel-loader',
        },
      },
      {
        test: /\.css$/,
        use: [
          {
            loader: 'style-loader',
          },
          {
            loader: 'css-loader',
            options: {
              modules: true,
              importLoaders: 1,
              localIdentName: '[name]_[local]_[hash:base64]',
              sourceMap: true,
              minimize: true,
            },
          },
        ],
      },
    ],
  },
  plugins: [htmlWebpackPlugin],
};
Run Code Online (Sandbox Code Playgroud)

这是我的package.json剧本

"scripts": {
    "dev": "webpack-dev-server --mode development --open",
    "prod": "webpack --mode production"
}
Run Code Online (Sandbox Code Playgroud)

这里的问题是,当我使用...(扩展运算符)时,它抛出了一个error我认为这与babel未正确编译有关的东西。任何建议,将不胜感激。谢谢。

它抛出error类似下面的内容。

 ERROR in ./src/index.js
    Module build failed: SyntaxError: D:/cp/src/index.js: Unexpected token (31:6)

      29 |   return {
      30 |     headers: {
    > 31 |       ...headers,
         |       ^
      32 |       authorization: token ? `Bearer ${token}` : null,
      33 |     },
      34 |   };
Run Code Online (Sandbox Code Playgroud)

Ser*_*aev 6

只需安装babel-plugin-transform-object-rest-spread模块。 https://www.npmjs.com/package/babel-plugin-transform-object-rest-spread

然后将其添加到.babelrc中:

"plugins": [
    "babel-plugin-transform-object-rest-spread",
  ],
Run Code Online (Sandbox Code Playgroud)

  • 如果不使用.babelrc,则将以下内容添加到webpack配置中的模块规则插件选项下:['transform-object-rest-spread'] (4认同)