Vue项目执行npm run build 时出现错误的解决办法
今天在封装自己的npm模块时,出现了一个问题,如下:之前是可以正常执行的,今天只是将的版本从1.3.0升级到了2.9.1,就无法构建项目了,执行npm run dev是没有问题的。测试更换很多组件都是不解决问题的。extract-text-webpack-plugin这个插件里使用了UglifyJs,而UglifyJs是不支持ES6的语法的。出现这个问题,就是因为mapbox-gl的新版本里使用了
·
今天在封装自己的npm模块时,出现了一个问题,如下:
ERROR in .....js from UglifyJs
Unexpected token: name (n) [./node_modules/mapbox-gl/dist/mapbox-gl.js:31,3706]
之前是可以正常执行npm run build
的,今天只是将mapbox-gl
的版本从1.3.0升级到了2.9.1,就无法构建项目了,执行npm run dev是没有问题的。测试更换很多组件都是不解决问题的。
原因
extract-text-webpack-plugin这个插件里使用了UglifyJs,而UglifyJs是不支持ES6的语法的。出现这个问题,就是因为mapbox-gl的新版本里使用了ES6的语法。
虽然项目里配置了ES6语法自动转ES5,但是看看下面webpack.config.js的配置就知道了,默认node_modules下的所有模块是不参与转换的,因为这会增加npm run build
的时间,并会增大失败的概率。
{
test: /\.js$/,
loader: 'babel-loader',
exclude: /node_modules/
},
解决办法
其实,从前面的错误代码中,可以看到错误出现在编译哪个模块的时候,我的就是出现了mapbox-gl模块。
我们只需要配置额外的将这个模块转换到ES5就可以了。exclude
的权重比include
高,我们只能像下面这样配置。
{
test: /\.js$/,
loader: 'babel-loader',
include: [
path.resolve(__dirname,'./src'),
path.resolve(__dirname,'./node_modules/mapbox-gl')
],
},
配置完成之后,重新执行npm run build
,发现成功了,但是构建的时间边长了。
更多推荐
已为社区贡献12条内容
所有评论(0)