当前位置: 首页 > 工具软件 > npm-gif > 使用案例 >

处理webpack npm run build 时 UglifyJs 报错

公孙联
2023-12-01

1.问题描述

我用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]')
        }
      }
  },

2.问题解决方式

个人对问题的理解是,配置中对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组件在项目中,也打包过并没有报错,为何这次出问题了?上面的也就是强行解释,有问题可以指出,彼此共同学习进步!

 类似资料: