首頁 > web前端 > js教程 > 主體

實際解決iview打包時UglifyJs報錯(詳細教學)

亚连
發布: 2018-06-01 09:09:30
原創
2524 人瀏覽過

下面我就為大家分享一篇解決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');
登入後複製

上面是我整理給大家的,希望今後會對大家有幫助。 ######相關文章:#########淺談webpack打包之後的檔案過大的解決方法############Vue ElementUI實作表單動態渲染、視覺化配置的方法############angularjs使用gulp-uglify壓縮後執行報錯的解決方法#######

以上是實際解決iview打包時UglifyJs報錯(詳細教學)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板