浅谈vue项目的优化

webpack压缩静态资源图片

安装image-webpack-loader插件,在项目打包的时候对项目中静态资源图片文件进行压缩,对于比较小的图片会被转成base64引用

(踩坑)项目中通过npm安装的时候会报错,可以把包删掉用cnpm进行安装,完美解决。

  chainWebpack: config => {
      //开启图片压缩
      config.module.rule('images')
      .test(/\.(png|jpe?g|gif|svg)(\?.*)?$/)
      .use('image-webpack-loader')
      .loader('image-webpack-loader')
      .options({ bypassOnDebug: true })
      }

路由懒加载

路由懒加载会动态的加载组件,只在用到某个组件的时候加载而不是一次全部加载,这样会使打包后的文件体积更小

代码如下:

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

引入第三方cdn资源

引入cdn,可以排除项目中安装的一些第三方包,减少项目打包后的体积,比如echarts等一些体积比较大的第三方包可以用cdn引入来减小打包体积。
vue.config.js配置如下:


module.exports = {
 chainWebpack: config => {
	        // 发布模式
        config.when(process.env.NODE_ENV == 'production', config => {
		        /*设置生产环境的入口文件*/
		      config.entry('app').clear().add('./src/main-prod.js')
	         // externals指定要排除包
	          config.set('externals', {
	            'vue': 'Vue',
	            'vue-router': 'VueRouter',
	            'vuex': 'Vuex',
	            'axios': 'axios',
	            'echarts': 'echarts'
	          })
		        // 是plugin在public/index.html中添加变量
		        // 用以判断运行的环境是否是发布
		          config.plugin('html').tap(args => {
		            args[0].isProd = true
		            return args
		          })
     		 })
  		 },
	}
}
  

html静态文件如下:

 <% if(htmlWebpackPlugin.options.isProd){ %>
      <script src="https://unpkg.com/vue@2.6.11/dist/vue.js"></script>
      <script src="https://unpkg.com/vue-router@3.2.0/dist/vue-router.js"></script>
      <script src="https://unpkg.com/vuex@3.4.0"></script>
      <script src="https://unpkg.com/axios@0.26.1/dist/axios.min.js"></script>
      <script src="https://unpkg.com/echarts@5.3.2/dist/echarts.js"></script>
    <% } %>

使用工具压缩图片大小

使用一些工具对项目中一些比较大的背景图进行压缩,从而减少静态资源的体积,工具可以百度。

使用精灵图或者字体图标

对项目中一些体积比较小的图片可以使用通过小工具合并成一张精灵图,可以减少图片请求服务器的次数,或者在项目中使用字体图标,比如阿里字体图标库,可以让UI把项目中用到的图标上传到字体图标库,通过下载到本地,然后可以在项目中全局引入
在这里插入图片描述
生成精灵图工具:CSS Sprites Generator

———————— 未完待补充 ——————

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值