# 打包及性能优化

# 1.vue-cli性能分析

npm run preview -- --report

这个命令会从我们的入口 main.js文件进行依赖分析,分析出最大的包,生成报告页面,方便我们进行观察和优化。

# 2.webpack排除打包

把体积较大的功能性插件或文件,放到CDN服务器上再引入,可以减轻整体包的大小,并且cdn的加速服务可以加快我们对于插件的访问速度。

# 使用方法:

在 vue.config.js 文件中,configureWebpack属性内,添加 externals属性,让webpack不打包它

externals:
	{ //key是要排除的包名,value是指实际引入的包的全局变量名
	'vue':'Vue',
	'element-ui':'ELEMENT',
	'xlsx':'XLSX'
	}

# 3.CDN文件配置及注入

采用cdn的方式,在页面模板中预先引入

vue.config.js

const cdn ={
	css:[
	//element-ui css
	'https://unpkg.com/element-ui/lib/theme-chalk/index.css'
	],
	js:[
	//vue must at first
	'https://unpkg.com/vue/dist/vue.js',
	'https://unpkg.com/element-ui/lib/index.js'
	'https://cdn.jsdelivr.net/npm/xlsx@0.16.6/dist/jszip.min.js'
	'https://cdn.jsdelivr.net/npm/xlsx@0.16.6/dist/xlsx.full.min.js'
	]
}

开发环境时没必要使用cdn,所以使用环境变量进行区分使用

let cdn = {css:[],js:[]}
const isProd = process.env.NODE_ENV === 'production'
let externals = {}
if (isProd){
    cdn ={
		css:[
		//element-ui css
		'https://unpkg.com/element-ui/lib/theme-chalk/index.css'
		],
		js:[
		//vue must at first
		'https://unpkg.com/vue/dist/vue.js',
		'https://unpkg.com/element-ui/lib/index.js'
		'https://cdn.jsdelivr.net/npm/xlsx@0.16.6/dist/jszip.min.js'
		'https://cdn.jsdelivr.net/npm/xlsx@0.16.6/dist/xlsx.full.min.js'
		]
	}
	externals={
		'vue':'Vue',
		'element-ui':'ELEMENT',
		'xlsx':'XLSX'
	}
}

最后通过html-webpack-plugin注入cdn文件到index.html模板之中

上次更新: 2021/5/28上午10:07:15