Laravel Mix使用`npm run dev`打破包装

时间:2017-04-25 12:53:01

标签: javascript node.js laravel ecmascript-6 laravel-mix

我有一个用ES6功能编写的nodejs包作为'let',扩展运算符(...)和函数参数的默认值。

当我运行Laravel Mix的npm run production时,会出现错误,如下所示:

 ERROR  Failed to compile with 1 errors                                 
 error
/js/app.js from UglifyJs
Unexpected token: name (DateTime) [./~/vdatetime/src/datetime.js:3,0]
[/js/app.js:40347,4]

npm ERR! Linux 4.4.0-72-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "run" "production"
npm ERR! node v7.4.0
npm ERR! npm  v4.1.2
npm ERR! code ELIFECYCLE
npm ERR! @ production: `cross-env NODE_ENV=production 
node_modules/webpack/bin/webpack.js --progress --hide-modules --
config=node_modules/laravel-mix/setup/webpack.config.js`
npm ERR! Exit status 2

(似乎是第3行的原因let运算符)

但是当我尝试npm run dev时,一切都按预期工作。 知道为什么它无法转换代码吗?

1 个答案:

答案 0 :(得分:0)

Uglify无法解析ES6,它会抛出语法错误。首先转换为ES5,使用babel对生成的JS进行后处理,或使用其他缩小器。