使用新公共管理运行开发时运行是好的的,但是新公共管理运行构建打包时接口报错,
如下:
原因是接口中使用了es6语法,然而uglifyJs是不支持的,打开我们的build/webpack.prod.conf.js文件,可以看到
//UglifyJs不支持ES6,您也可以使用巴别尔-米尼菲获得更好的树摇: https://github.com/babel/minifynew网络包。优化。uglifyjsplugin({ compression : { warning 3360 false },源映射: config。建造。生产源图,parallel: true}),已经提示了uglifyJs不支持es6 .
解决方案:
在webpack.base.conf.js中,我们先在射流研究…编译的时候添加如下:
{test: / .js$/,loader: 'babel-loader ',包含:[解析(' src ')、解析('测试')、解析('/node _ modules/iview/src ')、解析('/node _ modules/iview/packages ')]},先让接口的es6语法经过巴别塔来转换,然后在build/webpack.prod.conf.js中,注释掉原来的uglifyJs,引入外部的uglifyJs对射流研究…进行压缩混淆,代码如下:
//UglifyJs不支持ES6,您也可以使用巴别尔-米尼菲获得更好的树摇: https://github.com/babel/minify//新网络包。优化。UglifyJsPlugin({//压缩: {//警告: false/},//源映射: config。建造。生产源图,//parallel : true/}),新UglifyJsPlugin({//使用外部引入的新版本的射流研究…压缩工具parallel: true,uglifyooptions 3360 { ie 8: false,ecma: 6,warnings: false,mangle: true,//debug false输出: { comments : false,beautify: false,//debug true},压缩: {//在UglifyJs删除没有用到的代码时不输出警告警告:为假,//删除所有的"控制台"语句//还可以兼容工程师协会浏览器drop_console: true,//内嵌定义了但是只用到一次的变量collapse _ vars: true,//提取出出现多次但是没有定义成变量去引用的静态值reduce_vars: true,}}}),当然我们要先引入外部插件:
const UglifyJsPlugin=require(' uglifyjs-web pack-plugin ');如此便可解决。
以上这篇解决接口打包时UglifyJs报错的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。