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自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
Nov 20 Vue.js
VUE+Element实现增删改查的示例源码
Nov 23 Vue.js
在vue中动态修改css其中一个属性值操作
Dec 07 Vue.js
vue 在服务器端直接修改请求的接口地址
Dec 19 Vue.js
vue3.0中友好使用antdv示例详解
Jan 05 Vue.js
解决vue项目本地启动时无法携带cookie的问题
Feb 06 Vue.js
vue-router路由懒加载及实现的3种方式
Feb 28 Vue.js
vue项目两种方式实现竖向表格的思路分析
Apr 28 Vue.js
详细聊聊vue中组件的props属性
Nov 02 Vue.js
Vue+TypeScript中处理computed方式
Apr 02 Vue.js
解决vue-router的beforeRouteUpdate不能触发
Apr 14 Vue.js
Vue OpenLayer测距功能的实现
Apr 20 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
解决文件名解压后乱码的问题 将文件名进行转码的代码
2012/01/10 PHP
PHP 透明水印生成代码
2012/08/27 PHP
PHP类中的魔术方法(Magic Method)简明总结
2014/07/08 PHP
PHP实现上传文件并存进数据库的方法
2015/07/16 PHP
PHP操作路由器实现方法示例
2019/04/27 PHP
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
2007/05/08 Javascript
javascript 多级checkbox选择效果
2009/08/20 Javascript
JS中使用sort结合localeCompare实现中文排序实例
2014/07/23 Javascript
JavaScript继承基础讲解(原型链、借用构造函数、混合模式、原型式继承、寄生式继承、寄生组合式继承)
2014/08/16 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
jquery让指定的元素闪烁显示的方法
2015/03/17 Javascript
javascript实现图片自动和可控的轮播切换特效
2015/04/13 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
Angular2实现自定义双向绑定属性
2017/03/22 Javascript
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
easyui combogrid实现本地模糊搜索过滤多列
2017/05/13 Javascript
VueJs 搭建Axios接口请求工具
2017/11/20 Javascript
vue二级路由设置方法
2018/02/09 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
2018/12/13 Javascript
python中查看变量内存地址的方法
2015/05/05 Python
python自动发邮件总结及实例说明【推荐】
2019/05/31 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
TensorFlow实现自定义Op方式
2020/02/04 Python
python用opencv完成图像分割并进行目标物的提取
2020/05/25 Python
python开发前景如何
2020/06/11 Python
python 基于Apscheduler实现定时任务
2020/12/15 Python
美国折扣宠物药房:Total Pet Supply
2018/05/27 全球购物
俄罗斯厨房产品购物网站:COOK HOUSE
2021/03/15 全球购物
值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型
2015/10/24 面试题
销售找工作求职信
2013/12/20 职场文书
《列夫托尔斯泰》教学反思
2014/02/10 职场文书
中学生演讲稿
2014/04/26 职场文书
文明班级建设方案
2014/05/15 职场文书
2014年社区工作总结
2014/11/18 职场文书
幼儿园小朋友毕业感言
2015/07/30 职场文书
二维码条形码生成的JavaScript脚本库
2022/07/07 Javascript