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如何循环提取对象数组中的值
Nov 18 Vue.js
vue实现表格合并功能
Dec 01 Vue.js
基于vue与element实现创建试卷相关功能(实例代码)
Dec 07 Vue.js
Vue使用鼠标在Canvas上绘制矩形
Dec 24 Vue.js
基于vue+echarts数据可视化大屏展示的实现
Dec 25 Vue.js
Vue仿百度搜索功能
Dec 28 Vue.js
Vue中引入svg图标的两种方式
Jan 14 Vue.js
Vue实现圆环进度条的示例
Feb 06 Vue.js
vue组件的路由高亮问题解决方法
May 11 Vue.js
idea编译器vue缩进报错问题场景分析
Jul 04 Vue.js
Element-ui Layout布局(Row和Col组件)的实现
Dec 06 Vue.js
vue postcss-px2rem 自适应布局
May 15 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
深入apache host的配置详解
2013/06/09 PHP
PHP入门教程之上传文件实例详解
2016/09/11 PHP
PHP7常量数组用法分析
2016/09/26 PHP
两种常用的javascript数组去重方法思路及代码
2013/03/26 Javascript
ie 7/8不支持trim的属性的解决方案
2014/05/23 Javascript
js获取内联样式的方法
2015/01/27 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
Javascript实现的SHA-256加密算法完整实例
2016/02/02 Javascript
基于Node.js + WebSocket打造即时聊天程序嗨聊
2016/11/29 Javascript
js实现3D图片展示效果
2017/03/09 Javascript
深入理解node.js之path模块
2017/05/03 Javascript
bootstrap table使用入门基本用法
2017/05/24 Javascript
Vue实现PopupWindow组件详解
2018/04/28 Javascript
jQuery md5加密插件jQuery.md5.js用法示例
2018/08/24 jQuery
Angular8路由守卫原理和使用方法
2019/08/29 Javascript
layui实现form表单同时提交数据和文件的代码
2019/10/25 Javascript
原生javascript如何实现共享onload事件
2020/07/03 Javascript
python使用socket远程连接错误处理方法
2015/04/29 Python
Python爬取三国演义的实现方法
2016/09/12 Python
Python用list或dict字段模式读取文件的方法
2017/01/10 Python
python3+PyQt5实现拖放功能
2018/04/24 Python
Python中利用LSTM模型进行时间序列预测分析的实现
2019/07/26 Python
Python3常见函数range()用法详解
2019/12/30 Python
对Matlab中共轭、转置和共轭装置的区别说明
2020/05/11 Python
美国爆米花工厂:The Popcorn Factory
2019/09/14 全球购物
Java面试中常遇到的问题,也是需要注意的几点
2013/08/30 面试题
班组长工作职责
2013/12/25 职场文书
学校岗位设置方案
2014/01/16 职场文书
教师党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
2015年幼儿园元旦游艺活动策划书
2014/12/09 职场文书
邀请书模板
2015/02/02 职场文书
搞笑欢迎词大全
2015/09/30 职场文书
2015年物业公司保洁工作总结
2015/10/22 职场文书
css中z-index: 0和z-index: auto的区别
2021/08/23 HTML / CSS
django 认证类配置实现
2021/11/11 Python
微软Win11有哪些隐藏功能? windows11多个功能汇总
2021/11/21 数码科技