当前位置: 首页 > news >正文

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

如何打包查看所有资源大小?
使用插件: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飞车,可一起来玩玩鸭~

http://www.lryc.cn/news/351038.html

相关文章:

  • 【ARM 嵌入式 C 入门及渐进 6.1 -- ARMv8 C 内嵌汇编写系统寄存器的函数实现】
  • ESP32基础应用之使用手机浏览器作为客户端与ESP32作为服务器进行通信
  • 【课后练习分享】Java用户注册界面设计和求三角形面积的图形界面程序
  • 三维空间坐标系变换(旋转平移)
  • OC笔记之foundation框架
  • Docker部署springboot包并联通MySQL
  • 多帧激光点云基于标定参数进行融合拼接
  • python数据类型之字符串
  • Vue3实战笔记(38)—粒子特效终章
  • 晶体振荡器
  • 单词可交互的弧形文本
  • Linux——进程信号(一)
  • centos9 stream在线安装NVIDIA驱动(rockylinux9.4也成功安装nvidia驱动)
  • springmvc不同格式的参数解析
  • Unity3D让BoxCollider根据子物体生成自适应大小
  • WSL 2 installation is incomplete.
  • Servlet的request对象
  • 蓝桥杯-合并数列
  • 《web应用技术》第9次课后作业
  • FRAUDARCatchSync算法简介
  • 刷题之将有序数组转换成二叉搜索树(leetcode)
  • K-means聚类模型教程(个人总结版)
  • android怎么告诉系统不要回收
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —IAP Kit(2)
  • ubuntu设置root开机登录,允许root用户ssh远程登录
  • Web测试面试题(二)
  • VBA宏指令写的方法突然不能用了
  • 第13章 Python建模库介绍
  • IP学习——ospf1
  • 别说废话!说话说到点上,项目高效沟通的底层逻辑揭秘