Laravel Elixir Webpack对象扩展转换错误


Laravel Elixir Webpack Object Spread Transformation Error

有没有人得到对象传播操作符在Laravel Elixir工作?我的test.js文件

let a = {
    b: 'c',
    d: 'e'
}
let f = {
    g: 'h',
    ...a
}
console.log(f)

gulpfile.js代码:

const elixir = require('laravel-elixir');
require('laravel-elixir-vue');
elixir(mix => {
    mix.webpack('test.js');
});

和错误:

...
Module build failed: SyntaxError: D:/WEBZ/html/works/<project>/resources/assets/js/test.js: Unexpected token (8:4)
   6 | let f = {
   7 |     g: 'h',
>  8 |     ...a
     |     ^
   9 | }
  10 |
  11 | console.log(f)
BabelLoaderError: SyntaxError: D:/WEBZ/html/works/<project>/resources/assets/js/t.js: Unexpected token (8:4)
   6 | let f = {
   7 |     g: 'h',
>  8 |     ...a
     |     ^
   9 | }
  10 |
  11 | console.log(f)
...

尝试了很多东西。请帮助! !

我使用外部webpack.config.js解决了我的问题:

module.exports = {
    module: {
        loaders: [
            {
                test: /'.js?$/,
                exclude: /node_modules/,
                loader: 'babel',
                query: {
                    "presets": [ 'stage-2' ],
                    "plugins": [ 'transform-object-rest-spread' ]
                }
            },
            {
                test: /'.vue?$/,
                exclude: /node_modules/,
                loader: 'vue',
                query: {
                    "presets": [ 'stage-2' ],
                    "plugins": [ 'transform-object-rest-spread' ]
                }
            }
        ]
    }
}

把这个文件放在项目的根目录下。但是在运行gulp之前,请为babel安装babel-preset-stage-2预设包:

npm install --save-dev babel-preset-stage-2

看起来这还不是完全正式的,但是,你必须做你该做的。