webpack打包出错--elementUI使用不当惹的祸

Posted TSG前端技术分享

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了webpack打包出错--elementUI使用不当惹的祸相关的知识,希望对你有一定的参考价值。

问题:

 从git上拉下来一个vue工程,在此基础上进行开发、调试。平时运行的时候没有发现任何问题,但是打包却老是提示打包失败。错误提示为:

ERROR in js/apps90c5c.js from UglifyJs Unexpected token name 《i》, expected punc 《;》 [js/apps90c5c.js:4171,11]

打开打包生成的js文件,找到出错的地方:

原来是ES6的语法没有被转义。 但是在自己所写的文件中,无论如何也找不多这一段代码的出处,百思不得其解。 后来问大牛磊哥,他说在node_modules文件夹下找一找,然后才发现原来是element-ui惹的祸,element-ui中有一些js是使用的ES6的语法而且没有转换为ES5。而我们的项目中,针对js文件,处理方式为:

代码示例

 
   
   
 
  1. {

  2.    test: /\.js$/,

  3.    loader: "babel-loader",

  4.   exclude: /node_modules/

  5. }

这样,element-ui中的js就没有被babel转换。 将上面的规则改为:

 
   
   
 
  1. {

  2.   test: /\.js$/,

  3.   loader: "babel-loader",

  4.   include:[

  5.       path.resolve(SRC_PATH),

  6.       path.resolve(__dirname, 'node_modules/element-ui')

  7.   ]

  8. }

其中,SRC_PATH为项目代码目录,将element-ui目录加入babel-loader的编译范围即可解决。(注:这是单独引用Element-UI中的某一个组件导致的,如果在App.vue中直接import Element-UI,并且use,则就不会出现该问题)。


以上是关于webpack打包出错--elementUI使用不当惹的祸的主要内容,如果未能解决你的问题,请参考以下文章

webpack 打包后样式出错

webpack运行webpack .srcmain.js .distundle.js打包出错

vue2.0打包webpack出错

Webpack打包出错:Error: Cannot find module ‘webpack/lib/node/NodeTemplatePlugin‘ Require stack:

vue封装组件,类似elementUI组件库打包发布到npm上

wepack打包时出错不压缩代码及使用es7(async await)新语法问题