解决使用vue打包时vendor文件过大或者是app.js文件很大的问题

摘要:
在使用vue-cli脚手架打包后,发现vendor文件很大,将近1M左右。。然后你打包就会发现vendor文件小了很多~如果你还不满足,请接着往下看·····2、vue路由的懒加载。

这篇文章主要介绍了使用vue打包时vendor文件过大或者是app.js文件很大问题的解决方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

第一次使用vue2.0开发,之前都是用的angular1.x。在使用vue-cli脚手架打包后(UI用的Element-ui),发现vendor文件很大,将近1M左右。。后来翻阅资料才明白,原来webpack把所有的库都打包到了一起,导致文件很大。

我的解决办法:

1、把不常改变的库放到index.html中,通过cdn引入,比如下面这样:

解决使用vue打包时vendor文件过大或者是app.js文件很大的问题第1张

然后找到build/webpack.base.conf.js文件,在 module.exports = { } 中添加以下代码

1
2
3
4
5
externals: {
'vue': 'Vue',
'vue-router': 'VueRouter',
'element-ui': 'ELEMENT',
},

这样webpack就不会把vue.js, vue-router, element-ui库打包了。声明一下,我把main.js中对element的引入删掉了,不然我发现打包后的app.css还是会把element的css打包进去,删掉后就没了。

然后你打包就会发现vendor文件小了很多~

如果你还不满足,请接着往下看·····

2、vue路由的懒加载(具体作用,官网查看哦,这里就不多介绍了)。

刚开始我们使用路由可能是下面这样(router.js),这样一开始进入页面就会把所有的路由资源都加载,如果项目大,加载的内容就会很多,等待的时间页就会越长,导致给用户的不好的体验效果。

解决使用vue打包时vendor文件过大或者是app.js文件很大的问题第2张

为了把路由分模块,然后每次进入一个新页面才加载该页面所需要的资源(也就是异步加载路由),我们可以像下面这样使用(router.js):

解决使用vue打包时vendor文件过大或者是app.js文件很大的问题第3张

然后你打包就会发现,多了很多1.xxxxx.js;2.xxxxx.js等等,而vendor.xxx.js没了,剩下app.js 和manifest.js,而且app.js还很小,我这里是100k多一点。

解决使用vue打包时vendor文件过大或者是app.js文件很大的问题第4张

这里我没有生成map文件,这样打包速度快一些,整个项目文件也小很多(map文件一般都很大);

取消生成map文件,找到config/index.js ,修改下面箭头指向为false,就行了。

解决使用vue打包时vendor文件过大或者是app.js文件很大的问题第5张

免责声明:文章转载自《解决使用vue打包时vendor文件过大或者是app.js文件很大的问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇iOS App 内部跳转(设置、Wifi、蓝牙...)关键词在Mac OS X 下配置Android NDK(配置环境变量)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Mac下chrome的webapp hostadmin 快速切换host

首先是安装 app ,https://chrome.google.com/webstore/detail/hostadmin-app/mfoaclfeiefiehgaojbmncmefhdnikeg Chrome把扩展的NPAPI 禁用了,所以做成APP没以前方便了,但是有总比没有好。 安装之后发现mac下选择host文件没法选,因为finder中根本找不...

Flutter App打包配置(android平台)

1.生成jks文件,执行如下命令 keytool -genkey -v -keystore D:/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key 2.在工程目录android目录下的app目录下新建一个key目录,将第一步生成的key.jks拷贝进去。  3.在android目录下...

vue拖拽建站的简单模式vue-grid-layout

注入依赖 npm install --save vue-grid-layout 页面内容 <-- 这里走个for循环就可以当做需要的拖拽组件区域 --> <div @drag="drag" @dragend="dragend" class="droppable-element" draggable="true"unselectable=...

甘特图收集

vue-gantt-elastic:https://github.com/neuronetio/vue-gantt-elastic dhtmlxgantt:https://dhtmlx.com/blog/use-dhtmlxgantt-vue-js-framework-demo/ https://www.cnblogs.com/pengfei-nie/p/...

aws 负载均衡ELB访问后端私有子网中的服务(Private subnet)

常见Web系统的网络架构:  这个架构涉及几个问题: 1. 如何将面向公众的负载均衡器连接到具有私有 IP 地址的 EC2 实例 2.在私有实例中如何访问互联网的服务(比如第三方的接口)等 重要的两个概念: 公有子网 如果子网的默认流量路由到互联网网关,则该子网称为公有子网。例如,如果在此子网中启动的实例具有弹性 IP 地址或与之关联的公有 IP 地址,...

vue-打包为webapp,如何解决应用内跳转外部链接返回导致退出应用

思想:1.应用内部跳转至外部链接时,需处理为打开带原生导航栏的新页面 2.在原生导航栏中处理回退,为了回退后不直接退出应用,需执行其他操作,据hbuilder-窗口管理-关闭页面叙述: http://dev.dcloud.net.cn/mui/window/ mui.back()仅处理窗口逻辑,若希望在窗口关闭之前再处理一些其它业务逻辑,则可将业务逻辑抽象...