2017-04-25 14 views
0

私は、letのES6機能、広がり演算子(...)、関数の引数のデフォルト値で書かれたnodejsパッケージを持っています。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 

(3行目で原因である letオペレータているように見えます)

しかし、私がnpm run devを試してみると、すべてが意図どおりに機能します。 なぜコードを翻訳できないのでしょうか?

+0

私たちに 'let name'の行を表示してください –

+0

普及業者にはバベル段階2のプリセットが必要ですか? – Joe

答えて

0

UglifyはES6を解析できません。構文エラーが発生します。最初にES5に変換し、生成されたJSをbabelで後処理したり、別のミニカーを使用したりしてください。

+0

'beforepublishOnly'スクリプト(' npm publish'と入力したときに実行される)で実行されるパッケージにbabelを追加しました。これにより、Uglifyがそれを縮小するために公開されたスクリプトがES5に転送されます – vTripes

関連する問題