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-cli项目在IE浏览器打开报错解决方法
Dec 10 Vue.js
vue图片裁剪插件vue-cropper使用方法详解
Dec 16 Vue.js
vue3使用vue-count-to组件的实现
Dec 25 Vue.js
vue项目如何监听localStorage或sessionStorage的变化
Jan 04 Vue.js
Vue实现多页签组件
Jan 14 Vue.js
vue实现按钮切换图片
Jan 20 Vue.js
详解vite+ts快速搭建vue3项目以及介绍相关特性
Feb 25 Vue.js
vue3使用vue-router的完整步骤记录
Jun 20 Vue.js
vue+element ui实现锚点定位
Jun 29 Vue.js
关于Vue中的options选项
Mar 22 Vue.js
vue实现登陆页面开发实践
May 30 Vue.js
Vue 打包后相对路径的引用问题
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
纯真IP数据库的应用 IP地址转化成十进制
2009/06/14 PHP
php短信接口代码
2016/05/13 PHP
PHP发送AT指令实例代码
2016/05/26 PHP
PHP给源代码加密的几种方法汇总(推荐)
2018/02/06 PHP
php+mysql开发中的经验与常识小结
2019/03/25 PHP
Laravel获取所有的数据库表及结构的方法
2019/10/10 PHP
50个优秀经典PHP算法大集合 附源码
2020/08/26 PHP
javascript在一段文字中的光标处插入其他文字
2007/08/26 Javascript
JavaScript设计模式之观察者模式(发布者-订阅者模式)
2014/09/24 Javascript
后台获取ZTREE选中节点的方法
2015/02/12 Javascript
jquery动态增加删减表格行特效
2015/11/20 Javascript
jQuery图片轮播插件——前端开发必看
2016/05/31 Javascript
jQuery获取元素父节点的方法
2016/06/21 Javascript
jQuery tagsinput在h5邮件客户端中应用详解
2016/09/26 Javascript
React组件生命周期详解
2017/07/03 Javascript
JS实现的简单四则运算计算器功能示例
2017/09/27 Javascript
vue.js 实现点击展开收起动画效果
2018/07/07 Javascript
一文快速详解前端框架 Vue 最强大的功能
2019/05/21 Javascript
layui table 表格模板按钮的实例代码
2019/09/21 Javascript
JavaScript 监听组合按键思路及代码实现
2020/07/28 Javascript
梳理一下vue中的生命周期
2020/12/30 Vue.js
python使用writerows写csv文件产生多余空行的处理方法
2019/08/01 Python
解决django同步数据库的时候app models表没有成功创建的问题
2019/08/09 Python
Python socket模块ftp传输文件过程解析
2019/11/05 Python
关于Pytorch的MNIST数据集的预处理详解
2020/01/10 Python
Tensorflow实现将标签变为one-hot形式
2020/05/22 Python
python pymysql链接数据库查询结果转为Dataframe实例
2020/06/05 Python
Python之京东商品秒杀的实现示例
2021/01/06 Python
python 数据类型强制转换的总结
2021/01/25 Python
Python数据模型与Python对象模型的相关总结
2021/01/26 Python
印尼网上商店:Alfacart.com
2019/03/11 全球购物
中科方德软件测试面试题
2016/04/21 面试题
一套Delphi的笔试题一
2016/02/14 面试题
市场营销专科应届生求职信
2013/11/24 职场文书
图书室管理制度
2014/01/19 职场文书
Nginx反向代理至go-fastdfs案例讲解
2021/08/02 Servers