Vue项目打包优化(element+echarts+vue使用cdn)

20 篇文章 0 订阅
3 篇文章 0 订阅

如何打包查看所有资源大小?
使用插件:webpack-bundle-analyzer
效果图:
在这里插入图片描述

安装webpack-bundle-analyzer

第一步,终端执行

npm instatll webpack-bundle-analyzer --save-dev

第二步,vue.config.js配置

module.exports = {
	chainWebpack(config) {
	 	// 这里我做了只有开发环境才使用,关键代码是if下面的
	   if (process.env.NODE_ENV === 'development') {
	     config
	       .plugin('webpack-bundle-analyzer')
	       .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin)
	   }
	}
}

有的小白同学就要问了,说 为什么我的chainWebpack是这样的箭头函数:
chainWebpack: config => {
}
其实用法是一样的,丢到里面就行了!

第三步,package.json配置
在的你打包命令后面加上 --report

"build": "vue-cli-service build --report"

然后执行打包命令,npm run build 即可看到效果!

Element-UI使用CDN

第一步,vue.config.js配置

module.exports = {
  configureWebpack: {
    externals: {
      'element-ui': 'ELEMENT'
    }
  }
}

第二步,index.html引入cdn地址

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta name="renderer" content="webkit" />
    
    增加:
    <link rel="stylesheet" href="elementui.css的cdn地址" />
    
  </head>
  <body>
  	增加:
    <script src="elementui.js的cdn地址"></script>
    
    <div id="app"></div>
  </body>
</html>

没有地址?没关系,我推荐一个cdn网站:
https://www.bootcdn.cn/
在这里插入图片描述
打开搜索你需要的cdn名称,选择你要的指定版本。
ctrl+f 搜索:theme-chalk.css和index.js 复制
在这里插入图片描述

在这里插入图片描述
粘贴替换以上地址即可。
然后返回页面即可使用。

Element-UI使用cdn后Loading和Message无效报错?

是的,这两个在js的使用方法方法有所不同,要使用下面的方式:
vue2:loading

// 使用ELEMENT.Loading
ELEMENT.Loading.service(options)

vue3:loading

ElementPlus.ElLoading.service(options)

那么同理,vue.config.js的cdn也要改成如下:

'element-plus': 'ElementPlus',

ok,然后就没问题了,如有问题,下面留言!

echarts使用cdn

跟以上方式一样,vue.config.js配置:

externals: {
  echarts: 'echarts'
}

然后cdn搜索echarts,找到echarts.min.js。
在这里插入图片描述

然后index.html引入

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta name="renderer" content="webkit" />

    <link rel="stylesheet" href="elementui.css的cdn地址" />
    
  </head>
  <body>
    <script src="elementui.js的cdn地址"></script>
	
	增加2:
    <script src="echarts.js的cdn地址"></script>
    
    <div id="app"></div>
  </body>
</html>

然后页面直接可以使用。echarts.init()

Vue使用cdn

同理,搜索vue选版本,找到vue.min.js
在这里插入图片描述
index.html引入
记住引入顺序,vue>elementui

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta name="renderer" content="webkit" />

    <link rel="stylesheet" href="elementui.css的cdn地址" />
    
  </head>
  <body>
  	增加:
  	<script src="vue.js的cdn地址"></script>
  	
    <script src="elementui.js的cdn地址"></script>

    <script src="echarts.js的cdn地址"></script>
    
    <div id="app"></div>
  </body>
</html>

配置gzip打包压缩

安装compression-webpack-plugin,注意,需指定版本

npm i compression-webpack-plugin@6.1.1 --save

vue.config.js修改

const CompressionWebpackPlugin = require('compression-webpack-plugin')

module.exports = {
	chainWebpack(config) {
		config.plugin('compression').use(CompressionWebpackPlugin, [
	      {
	        filename: '[path][base].gz',
	        algorithm: 'gzip',
	        test: new RegExp('\\.(' + ['js', 'css'].join('|') + ')$'),
	        threshold: 10240,
	        minRatio: 0.8
	      }
	    ])
	}
}

配置其他优化项

安装图片压缩

npm install --save-dev image-webpack-loader

vue.config.js修改,以及其他优化项:

module.exports = {
	chainWebpack(config) {
		// 打包加hash时间
   	 	config.output.filename('js/[name].[hash].js')
    	config.output.chunkFilename('js/[name].[hash].js')
    	
    	// 移除 preload(预载) 插件
	    config.plugins.delete('preload')
	    
	    // 移除 prefetch(预取) 插件
	    config.plugins.delete('prefetch')

		//图片压缩
	    config.module
	      .rule('images')
	      .use('imageWebpackLoader')
	      .loader('image-webpack-loader')
	      .options({
	        disable: process.env.NODE_ENV === 'development', // 开发环境下禁止压缩
	        gifsicle: {
	          interlaced: false
	        }
	   	  })
	}
}

在这里插入图片描述
感谢你的阅读,如对你有帮助请收藏+关注!
只分享干货实战精品从不啰嗦!!!
如某处不对请留言评论,欢迎指正~
博主可收徒、常玩QQ飞车,可一起来玩玩鸭~

  • 42
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
Vue2是一种流行的JavaScript框架,用于构建用户界面。它具有轻量级、高效和灵活的特点,可以帮助开发者快速构建交互性强的Web应用程序。 Element UI是一套基于Vue2的开源UI库,提供了一系列的组件,包括按钮、表格、表单等,方便开发者构建美观的前端界面。 Cesium是一个用于构建地球图像的JavaScript库,可以在Web上创建高度交互的3D地球视图。它提供了丰富的地理信息和可视化功能,可以用于制作地理信息系统(GIS)应用程序。 搭建Vue2、Element UI和Cesium的框架可以让开发者在Web应用程序中结合地理信息和用户界面。具体步骤如下: 1. 首先,在项目中安装Vue2、Element UI和Cesium的依赖项。 ``` npm install vue npm install element-ui npm install cesium ``` 2. 在Vue项目中引入Vue2和Element UI的库,可以使用CDN或本地引入的方式。 3. 创建一个Vue的根组件,并在模板中使用Element UI的组件。 4. 在Vue项目中引入Cesium的库,可以使用CDN或本地引入的方式。 5. 在Vue的根组件中,创建一个Cesium的容器,并在created生命周期钩子函数中初始化Cesium的地球视图。 6. 在Cesium地球视图中加载地理信息和相应的可视化效果,例如加载地图数据、添加3D模型等。 通过以上步骤,就可以搭建一个基于Vue2、Element UI和Cesium的框架。开发者可以根据自己的需求进一步开发和定制化。这个框架可以让开发者在用户界面上展示地理信息,并提供交互性强的地球视图。同时,也可以使用Element UI的组件提供更美观友好的用户界面。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

★雨 潇★

谢谢您的鼓励,我会继续努力的~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值