vue打包速度优化
这是一个很头疼的问题,webpack极大的简化了前端自动化配置,但是打包速度实在是不如人意。在此之前,本人也尝试过网友的一些方法,但是,很多坑,跳进去就出不来,经过多个项目实践,现总结一下我用到的优化方式: cdn
原理: 上线依赖(通常放在package.json>dependencies)不参与打包构建,全部通过cdn引入
测试结果: 经过几个项目测验,能从40s以上降到 20s以下,至少节省一半打包时间。
// index.html
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"> <script src="https://cdn.bootcss.com/vue/2.5.2/vue.js"></script>
<script src="https://cdn.bootcss.com/vue-router/3.0.1/vue-router.js"></script>
<script src="https://cdn.bootcss.com/vuex/3.0.1/vuex.js"></script>
<script src="https://cdn.bootcss.com/echarts/4.0.4/echarts.js"></script>
<script src="https://unpkg.com/element-ui/lib/index.js"></script> <!--<script src="https://cdn.bootcss.com/vue/2.5.2/vue.min.js"></script>-->
<!--<script src="https://cdn.bootcss.com/vue-router/3.0.1/vue-router.min.js"></script>-->
<!--<script src="https://cdn.bootcss.com/vuex/3.0.1/vuex.min.js"></script>-->
<!--<script src="https://cdn.bootcss.com/echarts/4.0.4/echarts.min.js"></script>-->
<!--<script src="https://unpkg.com/element-ui/lib/index.js"></script>-->
// build > webpack.base.conf.js
module.exports = {
context: path.resolve(__dirname, '../'),
entry: {
app: './src/main.js'
},
output: {
...
},
resolve: {
...
},
module: {
...
},
node: {
...
},
externals:{
// '引入资源名': '对外资源名'
'vue': 'Vue',
'vue-router': 'VueRouter',
'vuex':'Vuex',
'element-ui': 'ELEMENT',
'echarts': 'echarts',
},
}
// src > main.js
// import Vue from 'vue'
import App from './App'
// import ElementUI from 'element-ui';
// import 'element-ui/lib/theme-chalk/index.css';
import router from './router'
import store from './store' // Vue.use(ElementUI) import VueCountUp from 'vue-countupjs';
Vue.use(VueCountUp); // 其它组件可正常用Vue.use(xxx)
// src > router > index.js
// import Vue from 'vue'
// import Router from 'vue-router'
// Vue.use(Router) var router= new VueRouter({ // VueRouter,保持和 webpack.base.conf.js 中 externals 暴露的变量一致。
})
// src > store > index.js
// import Vue from 'vue'
// import Vuex from 'vuex'
// Vue.use(Vuex)
另外,在store中调用element的方式也有变化,element方法都会挂载到 ELEMENT 变量上。
// actions.js 删除地址
async delAddress({commit,dispatch},id) {
let { msg } = await delAddress([id]);
if(msg === 'success'){
ELEMENT.Message({
showClose: true,
message: '删除成功',
type: "error"
})
dispatch("getAddressList");
}
},
vue打包速度优化的更多相关文章
- VUE打包上线优化
1.将vue vue-router vuex 尽量使用CDN externals: { 'vue':'Vue', 'vue-router':'VueRouter', 'vuex':'Vuex', 'a ...
- webpack常用loader和plugin及打包速度优化
优化 或 也可以用: 备用: 慎用的配置,用的不好会增加打包时间: 代码丑化插件:
- webpack 与 vue 打包体积优化
webpack 与 vue 在使用vue开发时,遇到打包后单个文件太大,因而需要分包,不然加载时间太久.虽然尽可能减少请求次数,但是单个包太大也不是好事 思路 组件按需加载 vue-router 的懒 ...
- vue打包体积优化之旅
webpack 与 vue 在使用vue开发时,遇到打包后单个文件太大,因而需要分包,不然加载时间太久.虽然尽可能减少请求次数,但是单个包太大也不是好事 思路 组件按需加载 vue-router 的懒 ...
- vue 打包优化
vue 打包优化 路由按需加载 通过vue写的单页应用时,可能会有很多的路由引入.当打包构建的时候,javascript包会变得非常大,影响加载.如果我们能把不同路由对应的组件分割成不同的代码块,然后 ...
- Vue打包优化之分析工具webpack-bundle-analyzer
// 1. 安装 cnpm install webpack-bundle-analyzer --save-dev // 2. 在/build/webpack.prod.conf.js文件中引入 con ...
- 优化webpack打包速度方案
基本原理要么不进行打包:要么缓存文件,不进行打包:要么加快打包速度. 不进行打包方案: 1,能够用CDN处理的用CDN处理,比如项目引入的第三方依赖jquery.js,百度编辑器 先进行打包或者缓存然 ...
- 【Vuejs】335-(超全) Vue 项目性能优化实践指南
点击上方"前端自习课"关注,学习起来~ 前言 Vue 框架通过数据双向绑定和虚拟 DOM 技术,帮我们处理了前端开发中最脏最累的 DOM 操作部分, 我们不再需要去考虑如何操作 D ...
- 最全 webpak4.0 打包性能优化清单
最全 webpak4.0 打包性能优化清单 webpack4.0如何进行打包优化? 无非是从两个角度进行优化,其一:优化打包速度,其二:优化打包体积,送你一份打包性能优化清单 1.使用loader的时 ...
随机推荐
- 【学习笔记】JS设计模式总结
前言:这段时间都在学习Vue的知识,虽然手边放着一本js高程,但确实好久没有好好复习了.温故而知新,因此特意把JS常见的设计模式总结,希望对大家有所帮助... 1. 工厂模式 释义:像工厂一样流水线般 ...
- [转]多个ajax请求时控制执行顺序或全部执行后的操作
本文转自:https://blog.csdn.net/fsdad/article/details/71514822 一.当确保执行顺序时: 1. 请求加async: false,,这样所有的ajax就 ...
- 使用Sandcastle工具为.NET项目工程生成一份项目帮助文档chm
Sandcastle的,由Microsoft创建的,是从创建MSDN风格的文档中使用的工具.NET程序集和关联的XML注释文件.目前的版本是2010年6月发布.这是命令行并没有GUI前端,项目管理功能 ...
- 8.中断按键驱动程序之poll机制(详解)
本节继续在上一节中断按键程序里改进,添加poll机制. 那么我们为什么还需要poll机制呢.之前的测试程序是这样: ) { read(fd, &key_val, ); printf(" ...
- 【Java基础】9、Enumeration接口和Iterator接口的区别
package java.util; public interface Enumeration<E> { boolean hasMoreElements(); E next ...
- SQL Server 中的一些概念
学习SQL Server 2012编程入门经典(第4版)的笔记 1.事务日志 任意数据库的更改起初不进入数据库本身,而是不断地被写入到事务日志. 日志是数据进入磁盘上的最先位置. 2.表 数据库中实际 ...
- canvas-4fillstyle.html
fillStyle color gradient pattern image canvas video strokeStyle
- Linux 中的命令链接操作符
&& 与 || 配合 eg: cat test.sh #!/bin/bash [ -e /etc/hosts ] && echo "ok" || e ...
- 2017-07-20 在Maven Central发布中文API的Java库
知乎原链 相关问题: 哪些Java库有中文命名的API? 且记下随想. 之前没有发布过, 看了SO上的推荐:Publish a library to maven repositories 决定在son ...
- python之if循环
if 条件: if语句块else: 语句块 money = int(input("请输入你兜里的钱:")) if money > 500: print("吃肉&qu ...