解决iview打包时UglifyJs报错的问题
程序员文章站
2023-11-03 23:44:58
使用npm run dev时运行是ok的,但是npm run build打包时iview报错,
如下:
原因是iview中使用了es6语法,然而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报错的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
推荐阅读
-
解决iview打包时UglifyJs报错的问题
-
解决vue v-for 遍历循环时key值报错的问题
-
用户为scott时,用pl/sql登录oracle,报错问题的解决方案
-
安装python时MySQLdb报错的问题描述及解决方法
-
使用NDKr9c编译安卓项目并打包时遇到的问题及解决办法
-
vue-cli webpack模板项目搭建及打包时路径问题的解决方法
-
maven多项目打包报错---子模块相互依赖打包时所遇到的问题:依赖的程序包找不到 package xxx does not exist
-
使用webpack命令打包时,报错TypeError: Cannot read property 'presetToOptions' of undefined的解决办法
-
webpack3里使用uglifyjs压缩js时打包报错的解决
-
解决连接oracle报错 尝试加载Oracle客户端库时引发BadImageFomatException。如果在安装64位Oracle客户端组件的情况下以32位模式运行,将出现此问题的报错。