Vue Element ui webpack 打包文件过大

今天撸完登录模块,打包的时候发现,单一个登录页面打包完的体积竟然达到了740KB!
这里写图片描述
这里写图片描述
模块是基于Vue全家桶 + element ui编写的,但即使全引入使用,也不应该达到这么夸张的一个体积。

事出反常必有妖,用Cli初始化项目时附带的webpack-bundle-analyzer查看打包情况,添加一个scripts"analyz": "set NODE_ENV=production && set npm_config_report=true && npm run dist",然后执行npm run analyz,得出如下结果
这里写图片描述
由此可见问题出在element ui上面。

经过一番排查,将问题定位在
这里写图片描述
这一个为了方便拓展和统一行为,将通知组件封装起来的js文件里面。

通过@element-ui/src/index.js的代码分析,有可能在独立的js文件引用的时候将整个element ui库再引用了一遍,所以由此入手进行改造引用方式
这里写图片描述

然后重新打包
这里写图片描述

直接减少到了145KB!!
这里写图片描述

其他组件在独立js引用的时候应该也是如此。
希望能帮助大家避免踩坑。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
根据提供的引用内容,可以得知在Vue2.0中引用element-ui组件库需要引入样式文件,并且如果出现报错可以在webpack.config.js中配置file_loader。如果仍然出现问题,可以在项目根目录下的build->webpack.dev.conf.js中将usePostCSS改为false即可。 关于Vueelement-ui/lib/theme-chalk/index.css和webpack的介绍和演示如下: Vue是一套用于构建用户界面的渐进式框架,它的核心库只关注视图层,易于上手,同时也便于与第三方库或既有项目整合。Vue也提供了一套完整的工具链,包括构建工具、脚手架、路由、状态管理等,可以帮助开发者更好地构建大型单页应用。 element-ui是一套基于Vue2.0的组件库,它提供了丰富的UI组件,包括表单、弹窗、导航、布局等,可以帮助开发者快速构建美观、易用的Web应用。 webpack是一个现代化的JavaScript应用程序静态模块打包器,它可以将多个模块打包成一个文件,以便在浏览器中使用。webpack支持各种各样的模块类型,包括CommonJS、AMD、ES6等,还可以通过loader和plugin扩展其功能。 演示如下: 1.在Vue项目中引入element-ui组件库 ```javascript // 引入element-ui样式文件 import 'element-ui/lib/theme-chalk/index.css'; // 引入element-ui组件库 import ElementUI from 'element-ui'; // 使用element-ui组件库 Vue.use(ElementUI); ``` 2.在webpack.config.js中配置file_loader ```javascript module.exports = { module: { rules: [ { test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, loader: 'file-loader', options: { name: utils.assetsPath('img/[name].[hash:7].[ext]') } } ] } } ``` 3.在build->webpack.dev.conf.js中将usePostCSS改为false ```javascript module.exports = merge(baseWebpackConfig, { module: { rules: utils.styleLoaders({ sourceMap: config.dev.cssSourceMap, usePostCSS: false }) } }) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值