2017-04-25 103 views
0

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

的事情是当我运行Laravel混合的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 

(好像是let操作符是在起因于第3行)

但是当我尝试npm run dev时,一切都按预期工作。 任何想法为什么它无法传输代码?

+0

向我们展示'let name'的行然后 –

+0

传播运算符是否需要Babel第2阶段预设? – Joe

回答

0

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

+0

我在'beforepublishOnly'脚本(当你键入'npm publish'时运行)执行的软件包中添加了babel,以便在Uglify开始缩小它时将已发布的脚本转换为ES5 – vTripes