iview 포장 시 UglifyJs 가 잘못 보고 한 문 제 를 해결 합 니 다.

npm run dev 를 사용 할 때 실행 하 는 것 은 ok 이지 만 npm run build 를 포장 할 때 iview 가 잘못 되 었 습 니 다.
다음 과 같다.

이 유 는 iview 에서 es6 문법 을 사 용 했 지만 uglifyJs 는 지원 되 지 않 습 니 다.build/webpack.prod.conf.js 파일 을 열 면 볼 수 있 습 니 다.

// UglifyJs do not support ES6+, you can also use babel-minify for better treeshaking: https://github.com/babel/minify
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false
},
sourceMap: config.build.productionSourceMap,
parallel: true
}),
uglifyJs 가 es6 를 지원 하지 않 는 다 는 것 을 알 렸 습 니 다.
해결 방안:
webpack.base.conf.js 에서 먼저 js 컴 파일 할 때 다음 과 같이 추가 합 니 다.

{
test: /\.js$/,
loader: 'babel-loader',
include: [resolve('src'),
resolve('test'),resolve('/node_modules/iview/src'),resolve('/node_modules/iview/packages')]
},
먼저 iview 의 es6 문법 을 babel 을 통 해 전환 시 킨 다음 build/webpack.prod.conf.js 에서 원래 의 uglifyJs 를 주석 하고 외부 uglifyJs 를 도입 하여 js 를 압축 하여 헷 갈 리 게 합 니 다.코드 는 다음 과 같 습 니 다.

// UglifyJs do not support ES6+, you can also use babel-minify for better treeshaking: https://github.com/babel/minify
// new webpack.optimize.UglifyJsPlugin({
// compress: {
// warnings: false
// },
// sourceMap: config.build.productionSourceMap,
// parallel: true
// }),
new UglifyJsPlugin({
//            js    
parallel: true,
uglifyOptions: {
ie8: false,
ecma: 6,
warnings: false,
mangle: true,
// debug false
output: {
comments: false,
beautify: false,
// debug true
},
compress: {
//  UglifyJs               
warnings: false,
//       `console`   
//      ie   
drop_console: 
true,
//                
collapse_vars: 
true,
//                        
reduce_vars: 
true,
}
}
}),
물론 우 리 는 먼저 외부 플러그 인 을 도입 해 야 한다.

const UglifyJsPlugin =
require('uglifyjs-webpack-plugin');
이렇게 하면 해결 할 수 있다.
이상 iview 패키지 에서 UglifyJS 가 잘못 보고 한 문 제 는 바로 편집장 님 이 여러분 에 게 공유 한 모든 내용 입 니 다.참고 해 주시 고 많은 응원 부탁드립니다.

좋은 웹페이지 즐겨찾기