由于JavaScript扩展运算符,Webpack不构建

时间:2018-03-22 08:28:50

标签: javascript webpack spread-syntax

我为扩展运营商收到意外的令牌错误,如何在不删除代码的情况下构建捆绑包?

这是我的webpack配置文件

 Unexpected token (85:32)

  83 |   console.log(
  84 |     'return value 1 ' +
> 85 |       JSON.stringify({ value: { ...this.value(), ...newState } })
     |                                 ^
  86 |   )
  87 |   return {
  88 |     value: {

var path = require('路径')

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

然而,这个webpack可以工作,但我需要使用前一个

module.exports = {
  entry: {
    partner: '../workout-example/partner/index.js',
    test: '../workout-example/test/example.spec.js'
  },
  target: 'web',
  mode: 'development',
  node: {
    fs: 'empty'
  },
  output: {
    filename: '[name]_bundle.js'
  }
}

2 个答案:

答案 0 :(得分:0)

您应该将展开运算符更改为Object.assign()

来自mozilla的示例

const object1 = {
  a: 1,
  b: 2,
  c: 3
};

const object2 = Object.assign({}, object1);

console.log(object2.c);
// expected output: 3

您的JS版本可能不支持最新的es6语法

示例来自您的代码

JSON.stringify({ value: { Object.assign({}, this.value(), newState) } })

答案 1 :(得分:0)

Object Rest/Spread Properties还不是ECMAScript功能(但很快就会出现)。

要使用它,您需要添加相应的Babel plugin