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

【大前端】vite忽略指定前缀的静态资源

背景

在日常开发中会出现引用网络资源的情况,但又的网络资源为了安全着想,会通过服务器代理的方式对外提供

所以在代码中往往写入的是相对路径,而vite在处理相对路径引入时,会根据路径去找本地的资源文件,但这里引入的是网络资源,所以本地根本不存在

那么唯一的解决办法就是:将import语句变成一个声明字符串变量的语句

vite官方在忽略并没直接提供忽略指定前缀静态资源的方法,但提供了将指定资源变为字符串的方式,但需要在开发时将资源在js脚本中引入,且在资源路径后加上 ?url 标识等标识

在这里插入图片描述

这显然并不是很符合实际的日常开发和需求

解决方案

上面提到了《将import语句变成字符串变量声明》,那么实现方式可以如下:

  1. 编写插件,vite使用插件化思想,处理各种资源
  2. 编写插件的transform生命周期,它主要是对当前资源的内容做处理,比如修改文本内容,所以符合本文需求
  3. 通过正则匹配所需要的 import语句,然后将 import语句 替换为 变量声明语句
  4. 返回替换完成的文本内容,交给下一个插件
export default defineConfig({plugins: [{name: "ignore-path",transform(code) {// 例如这里忽略以csdn开头的静态资源[...code.matchAll(/import ([a-zA-Z0-9_]+) from ['"]+\/csdn\/([^'"]+)['"]+/gs),].forEach((e) => {// 替换import语句code = code.replaceAll(e[0], `const ${e[1]}='/csdn/${e[2]}'`);});// 返回最终内容return code;},},],
})
http://www.lryc.cn/news/612898.html

相关文章:

  • 【插件式微服务架构系统分享】之 解耦至上:gateway 网关与APISIX 网关的不同分工
  • 一文解读“Performance面板”前端性能优化工具基础用法!
  • SpringAI
  • 数据结构---循环队列(补充 应用实例)、哈希表(哈希存储、哈希冲突、解决方法、举例实现)
  • Linux Docker 新手入门:一文学会配置镜像加速器
  • 躺平发育小游戏微信抖音流量主小程序开源
  • 透明矿山:科技重塑矿业未来
  • Numpy科学计算与数据分析:Numpy随机数生成入门
  • 光纤滑环 – 光纤旋转接头(FORJ)- 杭州驰宏科技
  • AutoMQ-Kafka的替代方案实战
  • QML与C++交互的方式
  • Kafka数据生产和发送
  • 基于Spring Cloud Stream与Kafka的事件驱动微服务架构设计与实战指南
  • 【Kafka系列】第二篇| Kafka 的核心概念、架构设计、底层原理
  • MQTT:Dashboard访问授权
  • MQTT:Dashboard黑名单与连接抖动
  • 【LeetCode】set和map相关算法题 前K个高频单词、随机链表的复制、两个数组的交集、环形链表
  • Flink-1.19.0源码详解9-ExecutionGraph生成-后篇
  • VScode使用jupyter notebook,配置内核报错没有torch解决
  • 贪心算法分析与解决指南
  • 1.电动汽车动力电池系统技术介绍与分类
  • 机器视觉系统工业相机的成像原理及如何选型
  • OpenCV图像处理入门实战指南
  • 为什么需要日志收集系统
  • 【运维】自动化生产环境部署工作流
  • Mac/Windows跨平台PDF与AI高效解决方案
  • day 48 模型的可视化与推理
  • 连续最高天数的销售额(动态规划)
  • 3D 软件在游戏开发中的全链路应用:从原型到上线的实战解析
  • 音乐创作好助手—— 蘑兔音乐