iview引入问题
本文针对vue-cli@2.9.3版本
我使用的iview版本为2.14.1
引入iview触发的问题
本地运行正常,打包后报错提示没有某个字体文件
webpack.prod.conf.js
1 | module: { |
iview全局引入后,打包体积过大
我说的是vendor.js(打包后的1M)
然后依照官网的api进行按需引用的改造
借助插件 babel-plugin-import可以实现按需加载组件,减少文件体积。首先安装,并在文件 .babelrc 中配置:
1 | npm install babel-plugin-import --save-dev |
然后这样按需引入组件,就可以减小体积了:
1 | import { Button, Table } from 'iview'; |
但是这样会报UglifyJs的错误,因为截止2018年6月6日为止,iview里的内容使用了es6语法,然而uglifyJs是不支持的!
1 | UglifyJs do not support ES6+, you can also use babel-minify for better treeshaking: https://github.com/babel/minify |
于是我就又各种搜索报错终于找到答案
解决方案(参考以上链接)
- 在webpack.base.conf.js中,我们先在js编译的时候添加如下:
1 | { |
- 先让iview的es6语法经过babel来转换,然后在build/webpack.prod.conf.js中,注释掉原来的uglifyJs,引入外部的uglifyJs对js进行压缩混淆,代码如下:
1 | //改动 你需要下载依赖 |
- 不要忘了安装依赖
1 | cnpm install uglifyjs-webpack-plugin --save-dev |
- 详情配置请参考官网
经历如上步骤后,我的vendor.js打包后体积为 300K(我只用了iview 的 DatePicker)
但是iview即使按需引入css还是挺大的大约300K还需要在 main.js里引入 依然很大。。。。。。