vue项目如何打包之项目打包优化(让打包的js文件变小)


Posted in Vue.js onApril 30, 2022

通常在一个vue项目中会用到很多插件什么,swiper,axios,vuerouter,vuex,…,那么使用了很多插件势必会造成打包的js文件过大,影响加载速度,造成不好的用户体验,那么我就来讲一件我自己总结打包方式,(让js文件变小)

我使用的命令是 vue ui 可视化打包操作

vue项目如何打包之项目打包优化(让打包的js文件变小)

进入可视化面板

vue项目如何打包之项目打包优化(让打包的js文件变小)

默认情况下,vue-cli 3.0生成的项目,隐藏了webpack配置项,如果我们需要配置webpack

需要通过vue.config.js来配置

在项目根目录中创建vue.config.js文件,

vue项目如何打包之项目打包优化(让打包的js文件变小)

module.exports = {
    chainWebpack:config=>{
        //发布模式
        config.when(process.env.NODE_ENV === 'production',config=>{
            //entry找到默认的打包入口,调用clear则是删除默认的打包入口
            //add添加新的打包入口
            config.entry('app').clear().add('./src/main-prod.js')
        })
        //开发模式
        config.when(process.env.NODE_ENV === 'development',config=>{
            config.entry('app').clear().add('./src/main-dev.js')
        })
    }
}

补充:

chainWebpack可以通过链式编程的形式,修改webpack配置

configureWebpack可以通过操作对象的形式,修改webpack配置

**###7.加载外部CDN

默认情况下,依赖项的所有第三方包都会被打包到js/chunk-vendors.

.js文件中,导致该js文件过大

那么我们可以通过externals排除这些包,使它们不被打包到js/chunk-vendors.

module.exports = {
    chainWebpack:config=>{
        //发布模式
        config.when(process.env.NODE_ENV === 'production',config=>{
            //entry找到默认的打包入口,调用clear则是删除默认的打包入口
            //add添加新的打包入口
            config.entry('app').clear().add('./src/main-prod.js')
            //使用externals设置排除项
            config.set('externals',{
                vue:'Vue',
                'vue-router':'VueRouter',
                axios:'axios',
                moment:'moment'
            })
        })
        //开发模式
        config.when(process.env.NODE_ENV === 'development',config=>{
            config.entry('app').clear().add('./src/main-dev.js')
        })
    }
}

在public 中的index文件中使用cdn引入外部js 从而然打包的js文件体积变小

vue项目如何打包之项目打包优化(让打包的js文件变小)

我们来看下 没有使用externals设置排除项 打包的js体积大小

vue项目如何打包之项目打包优化(让打包的js文件变小)

来看下使用externals设置排除项以后的大小

vue项目如何打包之项目打包优化(让打包的js文件变小)

明显变小了,而且把项目跑在服务器上 明显加载速度提升了很多

其他的优化还有 使用vuerouter 的路由懒加载,这里就不再赘述,vuerouter懒加载解释


Tags in this post...

Vue.js 相关文章推荐
Vue实现简单购物车功能
Dec 13 Vue.js
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
Dec 25 Vue.js
浅析vue中的nextTick
Dec 28 Vue.js
vue监听键盘事件的相关总结
Jan 29 Vue.js
如何在vue中使用video.js播放m3u8格式的视频
Feb 01 Vue.js
WebStorm无法正确识别Vue3组合式API的解决方案
Feb 18 Vue.js
基于vue的video播放器的实现示例
Feb 19 Vue.js
Vue中避免滥用this去读取data中数据
Mar 02 Vue.js
vue+spring boot实现校验码功能
May 27 Vue.js
Vue自定义铃声提示音组件的实现
Jan 22 Vue.js
vue实力踩坑之push当前页无效
Apr 10 Vue.js
Vue Mint UI mt-swipe的使用方式
Jun 05 Vue.js
关于vue-router-link选择样式设置
Apr 30 #Vue.js
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
Apr 30 #Vue.js
解决vue自定义组件@click点击失效问题
Apr 30 #Vue.js
Vue操作Storage本地化存储
Apr 29 #Vue.js
使用vuex-persistedstate本地存储vuex
Apr 29 #Vue.js
详解Vue3使用axios的配置教程
Apr 29 #Vue.js
vue生命周期钩子函数以及触发时机
Apr 26 #Vue.js
You might like
BBS(php & mysql)完整版(四)
2006/10/09 PHP
福利彩票幸运号码自动生成器
2006/10/09 PHP
一个简洁的PHP可逆加密函数(分享)
2013/06/06 PHP
jQuery JSON实现无刷新三级联动实例探讨
2013/05/28 Javascript
jquery表单验证插件(jquery.validate.js)的3种使用方式
2015/03/28 Javascript
实例讲解js验证表单项是否为空的方法
2016/01/09 Javascript
javascript self对象使用详解
2016/10/18 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
jQuery实现花式轮播之圣诞节礼物传送效果
2016/12/25 Javascript
js处理层级数据结构的方法小结
2017/01/17 Javascript
javascript设计模式之策略模式学习笔记
2017/02/15 Javascript
bootstrap选项卡扩展功能详解
2017/06/14 Javascript
Vue实现路由跳转和嵌套
2017/06/20 Javascript
jQuery选择器之属性筛选选择器用法详解
2017/09/19 jQuery
ES6中Class类的静态方法实例小结
2017/10/28 Javascript
解读vue生成的文件目录结构及说明
2017/11/27 Javascript
小程序如何构建骨架屏
2019/05/29 Javascript
jQuery操作选中select下拉框的值代码实例
2020/02/07 jQuery
基于Element封装一个表格组件tableList的使用方法
2020/06/29 Javascript
图解JS原型和原型链实现原理
2020/09/15 Javascript
vue封装自定义指令之动态显示title操作(溢出显示,不溢出不显示)
2020/11/12 Javascript
Vue+scss白天和夜间模式切换功能的实现方法
2021/01/05 Vue.js
python网络编程示例(客户端与服务端)
2014/04/24 Python
python+matplotlib演示电偶极子实例代码
2018/01/12 Python
无法使用pip命令安装python第三方库的原因及解决方法
2018/06/12 Python
python通过微信发送邮件实现电脑关机
2018/06/20 Python
python实现linux下抓包并存库功能
2018/07/18 Python
Django后台admin的使用详解
2019/07/08 Python
python 内置函数汇总详解
2019/09/16 Python
python主要用于哪些方向
2020/07/05 Python
Python实现http接口自动化测试的示例代码
2020/10/09 Python
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
千禧酒店及度假村官方网站:Millennium Hotels and Resorts
2019/05/10 全球购物
公司担保书格式范文
2014/05/12 职场文书
学校领导班子群众路线整改措施
2014/09/16 职场文书
Java 多线程协作作业之信号同步
2022/05/11 Java/Android