vue项目打包优化

一、打包路径和路由模式

第一步:在vue.config.js配置打包路径

module.exports = {
	publicPath:'./'
}

第二步:在router/index.js将路由模式改为hash

const router = new VueRouter({
  mode: "hash",
  base: process.env.BASE_URL,
  routes,
});

如果项目上线要求是history模式,需要告诉后端重定向一下路径。

二、代理和环境变量

    开发环境:.env.development

VUE_APP_ENV = 'dev'

VUE_APP_BASE_API = 'http://localhost:3000'

    生产环境:.env.production

VUE_APP_ENV = 'pro'

VUE_APP_BASE_API = 'http://localhost:3000'

在.vue文件里可以使用 console.log(process.env.VUE_APP_BASE_API)  判断该环境是开发环境还是生产环境,从而选择接口地址url。

	$axios( options ){

		let apiUrl = null;

		if( process.env.VUE_APP_ENV ==='dev' ){
			apiUrl = options.url;
		}else{
			apiUrl = process.env.VUE_APP_BASE_API + options.url;
		}
		return axios({
			url:apiUrl
		})
	}

三、使用node搭建后端项目

全局命令:npm install express-generator -g

进入项目目录:express --view=ejs server

四、node-express跨域

router.all('*', function (req, res, next) {
  res.header('Access-Control-Allow-Origin', '*');
  res.header('Access-Control-Allow-Headers', 'Content-Type');
  res.header('Access-Control-Allow-Methods', '*');
  res.header('Content-Type', 'application/json;charset=utf-8');
  next();
});

五、安装可视化插件

npm install webpack-bundle-analyzer

vue.config中配置

        //引入可视化插件
		const BundleAnalyzer = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;

		module.exports = {
			
			configureWebpack:config=>{
				config.plugins.push(
					new BundleAnalyzer()
				)
			}
		}

六、减少体积-productionSourceMap

别生成map文件

说明:map是方便代码运行的时候,可以准确输出代码到底是哪一行出现了错误。

module.exports={
            
    //不生成map文件
    productionSourceMap:false
}

七、拆包--路由懒加载提升加载性能

说明:app.js是用来存放页面中的js操作的。例如:如果路由没有懒加载和分包,那么所有的路由全部会放在app.js文件中。

使用webpackChunkName在router/index.js文件在进行拆包

 { 
    path: "/course",
    name: "Course",
    component: () => import(/* webpackChunkName:'course'*/ "../views/course/Course.vue")
},

八、减少体积-ui组件的按需引入

vendors.js:

说明:存放项目中的依赖。例如:vue.js、vue-router、vuex、axios、element-ui...

ui组件的按需引入:

        根据不同的ui组件,使用按需引入,会让vendors.js文件的体积变小

 九、减少体积-cdn引入包

可以把vue.js、router、vuex、axios...做成cdn引入。

注意:其实任何文件都可以做成cdn的形式,但是不建议ui组件做成cdn

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于Vue项目打包速度优化,可以尝试以下几种方法: 1. 使用CDN:将一些常用的第三方库(如VueVuex、Vue Router等)从本地打包中移除,改为通过CDN引入。这样可以减少打包体积和加快打包速度。 2. 按需引入组件:在使用UI组件库时,可以考虑按需引入组件,而不是全部引入。这可以通过babel-plugin-component等工具来实现,减少不必要的打包和编译时间。 3. 代码拆分:将大型的代码块拆分成更小的模块,利用Webpack的代码分割功能(如异步加载、按需加载)来实现懒加载。这样可以减少初始加载时间,提升用户体验。 4. 优化图片:对于项目中的图片资源,可以使用压缩工具来减小图片大小,如使用imagemin-webpack-plugin等插件进行图片压缩。 5. 缓存和持久化:合理利用浏览器缓存和服务端缓存,减少不必要的请求和加载时间。另外,可以考虑使用localStorage或IndexedDB等技术进行数据持久化,减少数据加载时间。 6. 使用Tree Shaking:通过配置Webpack的tree shaking功能,可以剔除项目中未使用的代码,减少打包体积和提升加载速度。 7. 配置合理的Webpack:根据项目需求,合理配置Webpack的各项参数,如使用cache-loader、thread-loader等插件来提升构建速度。 需要注意的是,优化策略要根据具体项目情况进行选择,不同的项目可能有不同的瓶颈和优化空间。可以通过Webpack Bundle Analyzer等工具来分析打包结果,找出优化的重点。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值