基于vue-cli npm run build之后vendor.js文件过大的解决方法


Posted in Javascript onSeptember 27, 2018

问题

vue-cli npm run build命令默认把dependencies中的依赖统一打包,导致vendor.js文件过大,出现首屏加载过于缓慢的问题。

解决方案

像vue、axios、element-ui这些基本上不会改变的依赖我们可以把它们用cdn导入,没有必要打包到vendor.js中。

1.在项目根目录index.html使用cdn节点导入

<div id="app"></div>
<!-- 先引入 Vue -->
<!--开发环境-->
<script src="https://cdn.bootcss.com/vue/2.5.3/vue.js"></script>
<!--生产环境-->
<!--<script src="https://cdn.bootcss.com/vue/2.5.3/vue.min.js"></script>-->
<!-- 引入组件库 -->
<script src="https://cdn.bootcss.com/axios/0.17.1/axios.min.js"></script>
<script src="https://cdn.bootcss.com/element-ui/1.4.10/index.js"></script>

2.项目根目录下build/webpack.base.config.js中添加externals

externals: {
 vue: 'Vue',
 'element': 'element-ui',
 'axios':'axios',
 },

3.mian.js中import ... from ...就可以去掉了,若没去掉webpack还是会把对应的依赖进行打包。

2018.01.27补充

在项目config/index.js中可以开启gzip压缩,对打包优化也有很大的帮助

1.首先安装插件 compression-webpack-plugin

cnpm install --save-dev compression-webpack-plugin

2.设置productionGzip: true

// Gzip off by default as many popular static hosts such as
 // Surge or Netlify already gzip all static assets for you.
 // Before setting to `true`, make sure to:
 // npm install --save-dev compression-webpack-plugin
 productionGzip: true,
 productionGzipExtensions: ['js', 'css'],

 // Run the build command with an extra argument to
 // View the bundle analyzer report after build finishes:
 // `npm run build --report`
 // Set to `true` or `false` to always turn it on or off
 bundleAnalyzerReport: process.env.npm_config_report

3.npm run build执行后会发现每个js和css文件会压缩一个gz后缀的文件夹,浏览器如果支持g-zip 会自动查找有没有gz文件 找到了就加载gz然后本地解压 执行。

以上这篇基于vue-cli npm run build之后vendor.js文件过大的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于jquery的一个浮动框(扩展性比较好 )
Aug 27 Javascript
利用JS自动打开页面上链接的实现代码
Sep 25 Javascript
通过JS来动态的修改url,实现对url的增删查改
Sep 01 Javascript
Javascript基础教程之比较操作符
Jan 18 Javascript
JavaScript获取当前日期是星期几的方法
Apr 06 Javascript
Jquery使用val方法读写value值
May 18 Javascript
以JavaScript来实现WordPress中的二级导航菜单的方法
Dec 14 Javascript
轻松实现jQuery添加删除按钮Click事件
Mar 13 Javascript
微信小程序 获取javascript 里的数据
Aug 17 Javascript
JS中数组与对象的遍历方法实例小结
Aug 14 Javascript
代码实例ajax实现点击加载更多数据图片
Oct 12 Javascript
vue实现轮播图帧率播放
Jan 26 Vue.js
vue-cli的工程模板与构建工具详解
Sep 27 #Javascript
Vue项目查看当前使用的elementUI版本的方法
Sep 27 #Javascript
详解如何用VUE写一个多用模态框组件模版
Sep 27 #Javascript
解决vue项目nginx部署到非根目录下刷新空白的问题
Sep 27 #Javascript
vue上传图片到oss的方法示例(图片带有删除功能)
Sep 27 #Javascript
浅谈vue项目4rs vue-router上线后history模式遇到的坑
Sep 27 #Javascript
详解关于vue2.0工程发布上线操作步骤
Sep 27 #Javascript
You might like
PHP 开发环境配置(测试开发环境)
2010/04/28 PHP
PHP 强制下载文件代码
2010/10/24 PHP
PHP实现扎金花游戏之大小比赛的方法
2015/03/10 PHP
php文件下载处理方法分析
2015/04/22 PHP
CI框架表单验证实例详解
2016/11/21 PHP
破除网页鼠标右键被禁用的绝招大全
2006/12/27 Javascript
jQuery ul标签下拉菜单演示代码
2010/12/11 Javascript
如何判断鼠标是否在DIV的区域内
2013/11/13 Javascript
javascript中Math.random()使用详解
2015/04/15 Javascript
jQuery简单实现仿京东商城的左侧菜单效果代码
2015/09/09 Javascript
Angular的模块化(代码分享)
2016/12/26 Javascript
微信小程序 网络请求(post请求,get请求)
2017/01/17 Javascript
nodejs的压缩文件模块archiver用法示例
2017/01/18 NodeJs
简单实现bootstrap导航效果
2017/02/07 Javascript
Angular设置别名alias的方法
2018/11/08 Javascript
微信小程序实现页面分享onShareAppMessage
2019/08/12 Javascript
JS基础之逻辑结构与循环操作示例
2020/01/19 Javascript
微信小程序间使用navigator跳转传值问题实例分析
2020/03/27 Javascript
vue实现购物车列表
2020/06/30 Javascript
基于JavaScript实现简单抽奖功能代码实例
2020/10/20 Javascript
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
python实现带声音的摩斯码翻译实现方法
2015/05/20 Python
使用Python多线程爬虫爬取电影天堂资源
2016/09/23 Python
PyTorch上实现卷积神经网络CNN的方法
2018/04/28 Python
Python中生成一个指定长度的随机字符串实现示例
2019/11/06 Python
django的403/404/500错误自定义页面的配置方式
2020/05/21 Python
Maisons du Monde德国:法国家具和装饰的市场领导者
2019/07/26 全球购物
计算机毕业大学生推荐信
2013/12/01 职场文书
一帮一活动总结
2014/05/08 职场文书
求职信范文大全
2014/05/26 职场文书
煤矿安全知识竞赛活动总结
2014/07/07 职场文书
领导班子整改方案和个人整改措施
2014/10/25 职场文书
2015秋季新学期开学寄语
2015/05/28 职场文书
爱国影片观后感
2015/06/18 职场文书
浅谈Redis在直播场景的实践方案
2021/04/27 Redis
详解Mysql数据库平滑扩容解决高并发和大数据量问题
2022/05/25 MySQL