博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
laravel-mix下webpack打包es6报错UglifyJs + Unexpected token punc 解决
阅读量:5772 次
发布时间:2019-06-18

本文共 932 字,大约阅读时间需要 3 分钟。

项目中有块功能用Vue+laravel-mix方式,引入了第三方组件库element-ui(饿了么),dev方式可以正常编译,可等到生产环境(prod)时一直编译不通过。

clipboard.png


初步分析是由于element-ui组件库存在ES6代码,UglifyJs无法做压缩引起,百度下解决方式

clipboard.png

尝试了下还是没用。难道babel没有对node_module下的模块下进行编译?


研究了下laravel-mix的源码

clipboard.png

原来在webpack-rules.js中关于babel编译的rule中过滤了node_modules ,再去laravel官网查看自定义rule的方式:

clipboard.png

在package同级目录下的webpack.mix.js中加上这段:

mix.webpackConfig({  module: {    rules: [      {        test: /\.jsx?$/,        include: /(node_modules\/element-ui)/,        use: [          {            loader: 'babel-loader',            options: {              presets: 'vue-app',              plugins: [                ["component", [                  {                    "libraryName": "element-ui",                    "styleLibraryName": "theme-default"                  }                ]],"transform-vue-jsx"]            }          }        ]      },    ]  }});

最后编译:

clipboard.png
clipboard.png

正如预期,报错不在出现,编译通过~!


总结: laravel-mix方式给webpack配置带来便利,但还是有一定的门槛,对于我这种刚尝试用vue+webpack做项目的新手有一定的难度!

转载地址:http://bzoux.baihongyu.com/

你可能感兴趣的文章
js原生继承之——构造函数式继承实例
查看>>
linux定时任务的设置
查看>>
[CareerCup] 13.3 Virtual Functions 虚函数
查看>>
[Angular 2] ng-model and ng-for with Select and Option elements
查看>>
Visio中如何让重叠图形都显示
查看>>
Tasks and Back stack 详解
查看>>
关于EXPORT_SYMBOL的作用浅析
查看>>
成功的背后!(给所有IT人)
查看>>
在SpringMVC利用MockMvc进行单元测试
查看>>
Nagios监控生产环境redis群集服务战
查看>>
Angular - -ngKeydown/ngKeypress/ngKeyup 键盘事件和鼠标事件
查看>>
Android BlueDroid(一):BlueDroid概述
查看>>
Java利用httpasyncclient进行异步HTTP请求
查看>>
循环多少次? 【杭电--HDOJ-1799】 附题+具体解释
查看>>
linux系统终端命令提示符设置(PS1)记录
查看>>
C++运算符重载
查看>>
【Web】URI和URL,及URL的编码
查看>>
宿舍局域网的应用
查看>>
html代码究竟什么用途
查看>>
oracle的substr函数的用法
查看>>