Vue组件库优化

开发基于Element UI的Vue扩展组件,在组件中使用了lodash库来处理集合对象,使用moment库来处理日期对象。只实现了几个组件,发布出来的npm包却有1M+,查看发布后的js文件,发现vue cli将lodash和moment的代码打包编译到了组件js文件中。
于是就想到了优化一下组件。

优化lodash

首先想到的就是不使用lodash库,将使用lodash实现的逻辑部分使用原生的JavaScript替换,然后再发布发现组件已经减小了很多。
移除lodash后
图片


优化moment


对于moment库,它本身含有很多的locale文件,用来支持其国际化功能。moment库对与项目来将还是比较大的。对于moment的优化,就使用另外一种的优化手段:使用外部moment。

再vue.config.js中配置:


configureWebpack: {
 externals: {
   moment: 'moment'
 }
}




告诉Vue CLI对用moment库,我们使用外部的,不需要打包进组件。仅仅告诉了Vue CLI,还要再index.html中增加moment相关的引用:

<script src="https://cdn.bootcss.com/moment.js/2.24.0/moment.min.js"></script>

配置完成后,我们再次编译:
图片

可以看到优化的效果还是非常明显的,直接优化掉了80%+的包大小。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章