【vue】配置cdn加速

《Vue入门到精通系列》--- 两万字带你入门Vue,前端开发工具 在模板中可以直接通过插值语法显示一些data中的数据 但是在某些情况,我们可能需要对数据进行一些转化后再显示,或者需要将多个数据结合起来进行显示比如我们有firstName和lastName两个变量,我们需要显示完整的名称。但是如果多个地方都需要显示完整的名称,我们就需要写多个{{firstName}} {{lastName}}我们可以将上面的代码换成计算属性:OK,我们发现计算属性是写在实例的computed选项中的。点击这里即可免费获取,包括答案解析。虚拟DOM。点击这里即可免费获取。 阅读详情
//vue.config.js

let cdn = { css: [], js: [] };
// 通过环境变量 来区分是否使用cdn
const isDev = process.env.NODE_ENV === 'development'; // 判断是否是开发环境
let externals = {};
if (!isDev) {
	// 如果是非开发环境 就排除打包 否则不排除
	externals = {
      // key(包名) / value(这个值 是 需要在CDN中获取js, 相当于 获取的js中 的该包的全局的对象的名字)
	  'vue': 'Vue',// 后面的名字不能随便起 应该是 js中的全局对象名
	  'vue-router': 'VueRouter',
	   moment: 'moment',
       'ant-design-vue': 'antd',
	   'axios': 'axios'
	}
	cdn = {
	  css: [
		'https://cdn.jsdelivr.net/npm/ant-design-vue@1.7.2/dist/antd.min.css', // 提前引入ant design vue样式
	  ], // 放置css文件目录
	  js: [
		'https://cdn.jsdelivr.net/npm/vue@2.6.11/dist/vue.min.js', // vuejs
		'https://cdn.jsdelivr.net/npm/vue-router@3.2.0/dist/vue-router.min.js',
		'https://cdn.jsdelivr.net/npm/moment@2.29.1/moment.min.js',  // 必须先引入moment,否则报错“TypeError: Cannot read property 'default' of undefined”
        'https://cdn.jsdelivr.net/npm/moment@2.29.1/locale/zh-cn.js', // 需同步引入语言包,否则日期选择控件等将默认显示为英文
		'https://cdn.jsdelivr.net/npm/ant-design-vue@1.7.2/dist/antd.min.js', // ant design vue
		'https://cdn.jsdelivr.net/npm/axios@0.21.0/dist/axios.min.js'
	  ]// 放置js文件目录
	}
}



module.exports = {
    configureWebpack: {
		// 排除打包的某些选项
		externals: externals
	},
    chainWebpack: config => {
		//  注入cdn的变量到index.html中
		config.plugin('html').tap((arg) => {
			arg[0].cdn = cdn
			return arg
		})  
	},

}

//public/index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <title><%= htmlWebpackPlugin.options.title %></title>
    <!-- 引入css-cdn的文件 -->
    <% for(var css of htmlWebpackPlugin.options.cdn.css) { %>
      <link rel="stylesheet" href="<%=css%>">
    <% } %>
  </head>
  <body>
    <noscript>
      <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <!-- 放置js-cdn文件 -->
    <% for(var js of htmlWebpackPlugin.options.cdn.js) { %>
      <script  src="<%=js%>" ></script>
    <% } %>
    <div id="app"></div>
  </body>
  <script>
    if (!!window.ActiveXObject || "ActiveXObject" in window) {
      document.body.innerHTML = '<div class="back-main"><div class="login--main"><div class="login-error"><div class="login-error-title">浏览器不支持</div><div class="login-error-content"><div class="login-error-icon"><i class="icon-uniEA30"></i></div><p>IE 浏览器不支持 </p ><p>请使用最新Chrome, Firefox, Safari浏览器. </p ></div></div></div></div>'
    }
  </script>
</html>

tips:css文件放在head中,js文件最好放在body内部的最上面,否则很可能出现某某对象未定义的问题

使用cdn的包,会被从主包中分离出去,有效的减小主包的体积。 

最后解答一个问题:

在做cdn时百度了很多,经常看到说要注释import引入的包(cdn),其实是不用的。一旦你注释掉,就意味着不能切换npm环境和cdn环境。

最后,看到一个gzip优化写的很好的博客,分享一下:vue打包时gzip压缩的两种方案_一只前端小菜鸟-优快云博客

vite3+vue3 项目打包优化三 — CDN加速、文件压缩 内容分发网络(Content Delivery Network,简称 CDN),是构建在数据网络上的一种分布式内容分发网,它可以让用户从最近的服务器请求资源,以提升网络请求的响应速度。:一但依赖网站出现问题,我们的项目也就不行了,建议留下备用方案,以便维护。把打包好的项目放入服务器目录,服务器开启 gzip 服务,这样通过项目地址就可以在浏览器中进行访问了。需要注意的是,浏览器解压也是需要时间的,如果项目体积不是很大的话,不建议采用 gzip 进行压缩 阅读详情

相关推荐

Vue项目实战:CDN加速首屏加载的完整配置指南

本文提供了一份完整的Vue项目CDN加速首屏加载配置指南。通过分析打包瓶颈,详细讲解了如何选择CDN资源、在HTML中引入链接、配置Webpack/Vite的externals以及清理冗余引入。该方法能有效利用CDN的并行加载与缓存优势,显著提升首屏加载速度,是前端性能优化的关键实践。

weixin_29008805的博客 571

Vue.js快速入门 (cdn引入)

本文是对Vue的学习,重点帮助大伙完成从早期基于Dom开发,到Vue中基于数据开发的编程思路转换,除了Vue的基础语法之外,还包含了网络请求库axios的基本使用,中间穿插着5个精心设计的案例。之后的学习内容将持续更新!!!

qq15035899256的博客 1万+

新版MQL语言程序设计:用vscode编写编译调试mt4和mt5程序

使用VScode搭建MT4与MT5开发环境,实现编辑编译调试统一。

超哥量化的博客 6872

Vue项目配置全局.env文件和cdn优化打包

项目配置(.env及分套配置) 项目有测试服和正式服两个,前阵子就想着把全局环境也分为两套,这样在开发中,打包测试服和正式服分开,避免混淆(因为出现过打包错了,测试服打包了正式服的东西。一直没有尝试,怕推上去把正式服搞炸了) 首先,大概讲一下,全局文件.env是干嘛用的以及分套的好处?名字显而易见,放全局变量呗,像接口api URL、APP_KEY等项目全局变量;测试服?正式服?那意味着他们的接口api URL 等信息并不相同啊,对的,以我们项目为例。 测试服 正式服 显而易见,如果只有一个.env全

weixin_43824054的博客 2220

1.28寸圆屏LCD驱动开发:GC9A01与RT-Thread嵌入式实现

圆形TFT-LCD是一种面向可穿戴、IoT终端的紧凑型人机交互显示技术,其核心在于SPI/QSPI接口时序控制与GRAM内存映射原理。通过驱动芯片(如GC9A01)完成电源管理、伽马校正和MADCTL方向配置,可实现低功耗、高刷新率的图形渲染。该技术显著提升嵌入式设备的UI表现力与空间利用率,在智能手环、传感器节点、微型HMI等资源受限场景中具备突出工程价值。本文围绕1.28寸圆屏LCD模块,详解硬件接口规范、RT-Thread下QSPI驱动架构及Bresenham算法优化实践。

weixin_42599908的博客 160

光耦继电器电路分析

光耦电路的分析笔记

MingYue_SSS的博客 6886

Vue打包优化篇-CDN加速

在没有使用cdn加速之前打包后数据如下,可以看出element-ui、vue、vuex、vue-router这些依赖都打进chunk-vendors.js中导致体积很大,假设再来很多依赖项是不是更大,同时也会影响单页面应用首屏加载速度,所以这里采用一种打包优化手段之一来分离依赖项。......

小生不才 7654

存储关键技术·RAID技术·RAID2.0·华为RAID2.0+·华为服务器·云计算

一.RAID基本概念 常见的RAID级别组合RAID级别 二.RAID的数据组织形式 三.RAID的数据保护功能 方法一:镜像方法二:奇偶校验算法(XOR) 四.RAID热备和重构 1.热备(Hot Spare)的定义2.热备的分类3.热备的工作原理 五.RAID 2.0技术 1.RAID 2.02.RAID 2.0+3.华为RAID 2.0+ 六.RAID 2.0+块虚拟化技术 1.什么会出现RAID 2.0+技术?2.什么是RAID 2.0?3.RAID 2.0+的原理是什么?

qq_47480932的博客 3320

vue项目优化 配置CDN加速

在 vue.config.js 文件中配置如下: // 设置cdn 资源 const cdn = { // 忽略打包的第三方库 /** * externals 对象属性解析: * '包名' : '在项目中引入的名字' * 以element-ui举例 我再main.js里是以 * import ELEMENT from 'element-ui' * Vue.use(ELEMENT, { size: 'small' }) * 这样引入的,所以我的externals的属性值应该是E

Passerby_K的博客 1010

合金理论自动化工具包(Alloy-Theoretic Automated Toolkit:ATAT)的安装

合金理论自动化工具包(ATAT)是一个通用名称,指的是合金理论工具的集合,它包含了不同的代码工具,具体如下: 1)根据第一性原理(映射和映射)构造集群扩展的代码。簇展开是一种非常紧凑和有效的表达式,给出取代合金的能量作为其构型的函数(即原子的类型位于晶格的哪个位置)。 2)为了计算合金的热力学性质,从聚类展开开始,对晶格模型进行蒙特卡洛模拟(emc2和memc2)的代码。 3)执行晶格动力学计算的代码(fitfc, fitsvsl, svsl) 4)使用简单的物理或半经验模型计算电子和磁自由能贡献

qq_33400046的博客 1万+

Infineon MOSFET开关损耗计算实战指南

本文是英飞凌MOSFET开关损耗计算的实战指南。针对MOSFET发热问题,文章深入剖析了开关损耗的产生机理,并基于Infineon数据手册的关键参数,手把手推导了开通与关断损耗的工程计算公式。同时,指南强调了栅极电阻、寄生参数等实际因素对损耗的影响,并提供了从理论计算到实测优化的完整路径,帮助工程师精准评估与优化电源设计。

weixin_29212867的博客 445

部署上线清单:Vue 项目 Nginx 配置与静态资源 CDN 加速方案

通过合理的 Nginx 配置和静态资源 CDN 加速方案,可以有效地部署 Vue 项目,并提升网站的性能和用户体验。在部署过程中,需要注意各个环节的配置细节,确保网站的稳定性和安全性。希望这份部署上线清单能够帮助你顺利将 Vue 项目部署到生产环境中。到这里,这篇文章就和大家说再见啦!我的过往文章里还藏着许多干货,感兴趣的话也可以点击我的主页看看,下面的文章也很精彩,可别错过。💕。

前端开发探索之旅 1666

YOLOv9分割改进 ,YOLOv9分割改进主干网络为华为EfficientNet,助力涨点

EfficientNet论文中研究了卷积网络的缩放和,并证明对深度,宽度和分辨率复合缩放的重要性,因此精度和效率更好。为了阐述相关的原理,我们提出了简单有效的复合缩放方法,使得模型缩放具有一定设计准则,同时兼顾了模型的效率。我下文将 YOLOv9 分割模型改进主干网络为 EfficientNet 融合网络结构。论文地址代码地址下文都是手把手教程,跟着操作即可添加成功把环境配置好,数据集处理好,训练基本能成功,创作不易,请帮忙点一个爱心,关注我,带你不挂科!

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 939

vue2配置cdn加速

vue脚手架打包的文件实在是太大了,特别是引入一些UI库之后,可以达到好几MB public/index.html main.js 根目录下新建一个vue.config.js module.exports = { // 设置打包文件相对路径 publicPath: "./", // 配置使用CDN configureWebpack: { externals: { vue: "Vue", axios: "a.

qq_18893835的博客 1466

代码复现1——Matterport3d数据集下载

进入“Dataset Download”部分,下载申请书,填写之后发送到指定邮箱(matterport3d@googlegroups.com),之后会收到回信,回信中附有一个download_mp.py的脚本文件。,大小约15G,并不是所有的Mp3d datasets,所有大小约1.3T。下载完成后如下图所示:我这边显示大小为16.1G。

qq_44100524的博客 8056

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Windows中将vue项目部署在nginx上,并配置域名cdn加速

目录 nginx常用命令 下载nginx: cdn加速 nginx常用命令 开启nginx服务 : start nginx 关闭nginx服务,快速停止nginx,可能并不保存相关信息: nginx -s stop 关闭nginx服务,完整有序的停止nginx,并保存相关信息: nginx -s quit 重载nginx服务,当你改变了nginx配置信息并需要重新载入这些配置时可以使用此命令重载nginx: nginx -s reload 下载nginx: ngin.

2771

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Vue项目性能优化、配置CDN加速

CDN(Content Delivery Network,内容分发网络)是一种分布式网络服务,它通过在地理上分散的多个服务器上存储内容的副本,使用户可以从最近的服务器节点获取数据,从而加快内容的加载速度和提高可用性项目体现:生产环境打包项目时, 将项目依赖的一些第三方包, 替换成 cdn方式外部加载,从而提升应用的加载、响应速度, (直观感受: vue ui视图可视化,查看前后配置的统计分析)

m0_71071209的博客 3569

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

vue CDN加速 vue-cli3 CDN加速配置

1.项目根目录创建 vue.config.js 文件 module.exports = { configureWebpack: { externals:{ 'vue': 'Vue', 'vue-router': 'VueRouter', 'element-ui': 'ELEMENT' }...

QQ734664264的博客 1910

在 vue-cli 构建的项目中配置使用资源CDN,加速我们的项目

出于对网站性能的要求,有时候我们不希望一些比较大的第三方库直接打包到最后的bundle中,而会选择在打包的时候忽略他们,并直接使用CDN上面的资源。生产环境中将项目依赖的一些第三方包替换成通过cdn方式外部加载,而不是打包到vender,对于提升应用的加载、响应速度很有意义。在vue-cli3及以后的项目中,相关配置都需要在这个文件中进行,如果你没有这个文件请自己新建一个(与同级)。

热爱思考、活力满满、开朗爱笑的年轻人 2083

vue项目配置打包优化 gzip压缩 更改输出js img css文件名 cdn加速

vue config文件 配置全局cdn加速 const CompressionWebpackPlugin = require('compression-webpack-plugin') // "compression-webpack-plugin": "^5.0.2", const cdnDependencies = require('./cdn') const HtmlInjectConfigPlugin = require('./src/plugins/html-inject-config-plugi

m0_56896206的博客 2493

3步实现gin-vue-admin静态资源CDN加速:从配置到部署的性能优化指南

gin-vue-admin是一个基于Gin和Vue.js的后台管理系统,适合用于需要构建Web后台管理界面的项目。本文将详细介绍如何通过3个简单步骤为gin-vue-admin项目配置静态资源CDN加速,显著提升系统加载速度和用户体验。 ## 为什么需要CDN加速? 在现代Web应用中,静态资源(如图片、CSS、JavaScript文件)的加载速度直接影响用户体验和系统性能。CDN(内容分发网

gitblog_00591的博客 630

vue-cli4.0 配置CDN加速

vue.config.js 出于对网站性能的要求,有时候我们不希望一些比较大的第三方库直接打包到最后的bundle中,而会选择在打包的时候忽略他们,并直接使用CDN上面的资源。 以下是vue-cli4的相关配置vue.config.js cdn.config.js module.exports = assetsCDN = { useCDN: false, // webpack build externals externals: { vue: 'Vue', 'vue-router

mrhaoxiaojun的博客 1959

vue-cli4.0 配置CDN加速防范

首先设置vue.config.js const externals = { vue: "Vue", "vue-router": "VueRouter", vuex: "Vuex", axios: "axios" }; const cdn = { // 开发环境 dev: { css: [], js: [] }, // 生产环境 build:...

uu_justdoit的博客 1596

cdn加速以及前后分离SpringBoot+Vue 配置https及SSL证书

配置方法同上篇文章一样 CDN加速配置,阿里云cdn内配置好以后即可 剩下把前端服务器nginx内的证书文件上传以及配置写好即可。 后端服务器也同上配置证书下载上传服务器配置好nginx即可。 如果都配置好以后,不可以访问时,注意查看前端请求接口是否为https方式。 如果为http时,检查是否更新服务器成功,如果成功后还不可以正常访问时,前端修改代码如下: vue.config.js内添加下行代码。 index.html下添加代码:https:true 完毕! ...

Z_hhhha的博客 2726

Vue2项目打包时,引入element-ui 配置 CDN 加速时报错 Cannot read properties of undefined (reading ‘prototype‘)

Vue2项目打包优化时,引入element-ui 配置 CDN 加速时报错出现报错信息:Uncaught TypeError: Cannot read properties of undefined (reading 'prototype')此时再重新打包,控制台就没有报错了,试了下,项目也能正常运行。在 externals 下把 vue 也一起配了。老师说出现这个问题的原因是,

LHH1655758452的博客 3735
上一篇: 【部署】docker容器化 前端学习
下一篇: 【js】ES6进阶学习
谭CV
博客等级 码龄9年 73粉丝 85原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值