这是一个很头疼的问题,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打包速度优化的更多相关文章

  1. VUE打包上线优化

    1.将vue vue-router vuex 尽量使用CDN externals: { 'vue':'Vue', 'vue-router':'VueRouter', 'vuex':'Vuex', 'a ...

  2. webpack常用loader和plugin及打包速度优化

    优化 或 也可以用: 备用: 慎用的配置,用的不好会增加打包时间: 代码丑化插件:

  3. webpack 与 vue 打包体积优化

    webpack 与 vue 在使用vue开发时,遇到打包后单个文件太大,因而需要分包,不然加载时间太久.虽然尽可能减少请求次数,但是单个包太大也不是好事 思路 组件按需加载 vue-router 的懒 ...

  4. vue打包体积优化之旅

    webpack 与 vue 在使用vue开发时,遇到打包后单个文件太大,因而需要分包,不然加载时间太久.虽然尽可能减少请求次数,但是单个包太大也不是好事 思路 组件按需加载 vue-router 的懒 ...

  5. vue 打包优化

    vue 打包优化 路由按需加载 通过vue写的单页应用时,可能会有很多的路由引入.当打包构建的时候,javascript包会变得非常大,影响加载.如果我们能把不同路由对应的组件分割成不同的代码块,然后 ...

  6. Vue打包优化之分析工具webpack-bundle-analyzer

    // 1. 安装 cnpm install webpack-bundle-analyzer --save-dev // 2. 在/build/webpack.prod.conf.js文件中引入 con ...

  7. 优化webpack打包速度方案

    基本原理要么不进行打包:要么缓存文件,不进行打包:要么加快打包速度. 不进行打包方案: 1,能够用CDN处理的用CDN处理,比如项目引入的第三方依赖jquery.js,百度编辑器 先进行打包或者缓存然 ...

  8. 【Vuejs】335-(超全) Vue 项目性能优化实践指南

    点击上方"前端自习课"关注,学习起来~ 前言 Vue 框架通过数据双向绑定和虚拟 DOM 技术,帮我们处理了前端开发中最脏最累的 DOM 操作部分, 我们不再需要去考虑如何操作 D ...

  9. 最全 webpak4.0 打包性能优化清单

    最全 webpak4.0 打包性能优化清单 webpack4.0如何进行打包优化? 无非是从两个角度进行优化,其一:优化打包速度,其二:优化打包体积,送你一份打包性能优化清单 1.使用loader的时 ...

随机推荐

  1. 从前端角度看ajax如何保护接口的安全性

    一.前言 在web中,使用Ajax调用API,撇开跨域不讲,怎么做安全验证,防止别的网站调用呢?假设没有做安全保障,任何用户都可以直接访问接口,这回暴露出极大的安全隐患. 二.后端怎么做? 1.一些接 ...

  2. JavaWeb学习 (二十)————JavaWeb的两种开发模式

    一.JSP+JavaBean开发模式 1.1.jsp+javabean开发模式架构 jsp+javabean开发模式的架构图如下图(图1-1)所示

  3. 哆啦A梦欺骗了你!浏览器CSS3测试遭质疑

    首先,说明,此处只是告诫各位参与CSS3.0学习使用或者将要使用或者学习CSS3.0的朋友,不要完全信任网络资源,依靠网络资源,我们需要利用网络资源的方便和可取的部分,结合自己的理解,学好,理解好! ...

  4. c# 获取当前绝对路径

    /// <summary> /// 获得当前绝对路径 /// </summary> /// <param name="strPath">指定的路 ...

  5. c#unicode,中文互转

    /// <summary> /// 中文转unicode /// </summary> /// <returns></returns> public s ...

  6. nexus-3.2.0-01.zip安装以及如何启动服务

    1. 在之前的版本中,启动nexus服务都是在cmd中输入 nexus install来安装服务,nexus start来启动服务. 2. 在nexus-3.2.0-01中,直接在nexus根目录下的 ...

  7. 【Dubbo&&Zookeeper】2、 windows平台dubbo-admin管理平台搭建

    一.前言 dubbo的使用,其实只需要有注册中心,消费者,提供者这三个就可以使用了,但是并不能看到有哪些消费者和提供者,为了更好的调试,发现问题,解决问题,因此引入dubbo-admin.通过dubb ...

  8. html页面边框的简单设置方法

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. Python 映射

    python中的反射功能是由以下四个内置函数提供:hasattr.getattr.setattr.delattr,改四个函数分别用于对对象内部执行:检查是否含有某成员.获取成员.设置成员.删除成员. ...

  10. Linux 学习笔记之超详细基础linux命令 Part 10

    Linux学习笔记之超详细基础linux命令 by:授客 QQ:1033553122 ---------------------------------接Part 9----------------- ...