最近在做vue项目,用的 webpack-simple 模板。开发过程中都没有问题。当打包上线的时候出现问题了。也就是运行

npm run build //这个大家都知道是上线时打包用的,会把代码压缩。

提示了如下错误

ERROR in build.js from UglifyJs
Unexpected token operator «=», expected punc «,» [./node_modules/quill-image-extend-module/index.js:12,0][build.js:76527,35]

weback默认的webpack.optimize.UglifyJsPlugin不能压缩es6的代码文件。顺着这个思路只要我们把es6的代码用babel转换成es5即可。
原因肯定还是在webpack.config.js上。经过反复观测发现。问题出现在了loader配置上,loader上有一项是配置js文件转换的。

 {
        test: /\.js$/,
        loader: 'babel-loader',
        exclude: /node_modules/,
      
      }

上面的配置exclude: /node_modules/。这一项排除了/node_modules,也就说是这项配置在用loader转化es5的时候不对node_modules下的引用进行es5转换。

看上面的报错信息,我项目中引用了/node_modules/quill-image-extend-module/index.js。根据exclude: /node_modules/,这个配置打包的时候是不会对这个文件进行es5转码。而webpack.optimize.UglifyJsPlugin不能压缩es6语法的文件,所以就报错了。
知道问题所在,那么就好解决了。代码如下

 {
        test: /\.js$/,
        loader: 'babel-loader',
        //exclude: /node_modules/,    //只要把这个注释掉就可以了。就会先进行es5转换,然后在打包压缩
      
      }

再次运行 npm run build 不在报错。正常编译成功了。
我们在项目开发中会经常引用第三方插件,所以我觉得这项配置可以直接去掉。避免麻烦发生。

Logo

前往低代码交流专区

更多推荐