我用vue写着一个项目,之前打包一直是没问题的,但是一次打包突然这样报错了,查了下是因为es6未被重新编译导致的
ERROR in static/js/vendor.63e5e42ceeff268eafda.js from UglifyJs
Unexpected token: name (idSeed) [./~/element-ui/src/utils/popup/index.js:6,0][static/js/vendor.63e5e42ceeff268eafda.js:116197,4]
这是我webpack.base.conf.js文件中一部分配置 ,babel-loader是已经有的,并且有配置过的
rules: [
{
test: /\.(js|vue)$/,
loader: 'eslint-loader',
enforce: 'pre',
include: [resolve('src'), resolve('test')],
options: {
formatter: require('eslint-friendly-formatter')
}
},
{
test: /\.vue$/,
loader: 'vue-loader',
options: vueLoaderConfig
}, {
test: /\.js$/,
loader: 'babel-loader',
exclude:[/node_modules/]
}, {
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('img/[name].[hash:7].[ext]')
}
},
{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
}
}
},
个人对问题的理解是,配置中对es6语法重编译的是需要指明文件的,有些文件默认状况下是会被忽略的,也就是你只需要重新加上那个文件名就可以!
特别强调:注意自己使用的element-ui 的版本号,配置中的版本必需与实际使用的版本一致,否则无效
注:实际使用版本是指 node_moules文件夹下版本,package.json中对应的版本号不一定是实际安装的版本(项目重新npm install 后会导致一些模块版本更新了)
{
test: /\.js$/,
loader: 'babel-loader',
include: [
resolve('src'),
resolve('node_modules/_element-ui@2.3.3@element-ui/src'),
resolve('node_modules/_element-ui@2.3.3@element-ui/packages')
},
就这样问题算是处理好了
ps:自己就有些不理解,之前我也用了element-ui组件在项目中,也打包过并没有报错,为何这次出问题了?上面的也就是强行解释,有问题可以指出,彼此共同学习进步!