将写好的vue项目部署到服务器上后首次加载,速度感人,这里记录下优化的方案
在network中看到页面加载中有一个打包文件请求的时间非常长
资源请求耗时:从图里可以明显看到个别js文件请求耗时高达7秒
优化加载速度的方法很多,比如优化代码、优化请求接口,或者采用压缩打包文件(需要配置nginx,优化效果也比较明显)。
本文选择详细描述的是 cdn引入文件,减少webpack打包文件的体积,从而优化加载速度
vue项目下的index.html文件 cdn引入需要用到的包 引入地址推荐使用:cnd地址
可以选择对应版本
<%= htmlWebpackPlugin.options.title %>
这是我的配置 优化的关键点是在配置里加上 externals的配置 externals具体作用可以去webpack官网看
const path = require('path');
module.exports = {
//部署应用包时的基本 URL ,用法和 webpack 本身的 output.publicPath 一致
// publicPath:process.env.NODE_ENV === 'production'?'/':'./'
publicPath:'./',
//输出文件目录
outputDir:'dist',
//eslint-loader 是否在保存的时候检查
lintOnSave:false,
//是否使用包含运行时编译的 Vue 构建版本
runtimeCompiler:true,
//生产环境是否生成 sourceMap 文件
productionSourceMap:false,
// webpack-dev-server 相关配置
devServer:{
open:true,
host:'localhost',
port:9003,
https:false,
},
configureWebpack:{
resolve: {
extensions: ['.js', '.json', '.vue', '.scss', '.css'],
alias: {},
},
**externals: {
'vue': 'Vue',
'vuex': 'Vuex',
'vue-router': 'VueRouter',
'ElementUI': 'ELEMENT',
'echarts': 'echarts',
'Axios':'axios'
},**
},
}
例如 vuex
// import Vue from 'vue' //删除
import Vuex from 'vuex'
// Vue.use(Vuex) //删除
export default new Vuex.Store({
state: {
},
mutations: {
},
actions: {
},
modules: {
}
})
vue-router
// import Vue from 'vue' //删除
import VueRouter from 'vue-router'
// Vue.use(VueRouter) //删除
import Vue from 'vue'
import App from './App'
import router from './router'
import store from './store'
//import ELEMENT from 'element-ui' //element 做成按需加载 具体上篇博客有介绍
//Vue.use(ELEMENT)
/* eslint-disable no-new */
new Vue({
el: '#app',
router: router,
store: store,
render: h => h(App)
})
本章完