2017-10-24 17 views
0

:UglifyJS 웹팩 플러그인 예외 : 예기치 않은 토큰 : 이름 (기능) 나는 웹팩에 대한 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]

내가 읽은 웹팩 플러그인의 새로운 베타 버전이 ES6을 지원을 :

:
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 
    } 
}), 

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

그러나, 지금은 또 다른 오류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로 후 처리하거나 다른 minifier를 사용해야합니다. 내 추천은 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