2017-10-24 10 views
0

UglifyJS WebPACKのプラグインがスローされます:予期しないトークン:名前(機能)私はWebPACKのためUglifyJSとES6モジュールとの問題を抱えてするために使用

ERROR in static/js/vendor.6ccd9e38979a78765c7a.js from UglifyJs Unexpected token: name (features) [./node_modules/pica/lib/mathlib.js:19,0][static/js/vendor.6ccd9e38979a78765c7a.js:39003,6]

は、私が読んWebPACKのプラグインの新しいベータ版はES6をサポートしていることを:

https://github.com/webpack-contrib/uglifyjs-webpack-plugin

new webpack.optimize.UglifyJsPlugin({ 
    uglifyOptions: { 
    ie8: false, 
    ecma: 8, // I also tried 7 and 6 
    parse: {}, 
    mangle: { 
     properties: { 
     // mangle property options 
     } 
    }, 
    output: { 
     comments: false, 
     beautify: false 
    }, 
    compress: {}, 
    warnings: true 
    } 
}), 

しかし、今私は別のエラーを取得:

を3210

ERROR in static/js/vendor.6ccd9e38979a78765c7a.js from UglifyJs Unexpected token: name (features) [static/js/vendor.6ccd9e38979a78765c7a.js:39003,6]

何が問題なのですか?

答えて

2

babel-preset-envをインストールし、presets": [ "env" ]をwebpack.config.jsまたはbabelrcに追加してみることができます。

Uglifyは独自の(私が知る限り)ES6を解析できないため、コードをES5に置き換え、生成されたJSをbabelで後処理したり、別のミニマイザを使用する必要があります。私の推奨はBabelifyで、Uglifyで一定のエラーがあった後に切り替えました。

編集:問題はnew webpack.optimize.UglifyJsPlugin宣言にある可能性があります.Webpack 3+でこの宣言を使用する際に問題があります。 uglifyjs-webpack-pluginをインポートし、プラグインの宣言をnew UglifyJSPlugin(例)に変更する必要があります。ここにはreferenceがあります。

例:

const UglifyJSPlugin = require('uglifyjs-webpack-plugin') 

    const config = { 
     ... 
     plugins: [ 
     new UglifyJSPlugin({ uglifyOptions: { ...options } }) 
     ] 
    } 
+0

私も試した 'バベル/ minify'いますが、この問題に見ることができるように、多くの人々に影響を与えています、問題があります:https://github.com/babel/minify/issues/556 – alex

関連する問題