当前位置: 首页 > 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.dtcms.com/a/319816.html

相关文章:

  • 移动端 WebView 登录异常与会话恢复问题全流程排查指南
  • 灯哥FOC笔记-----(1)无刷电机概论和硬件控制原理
  • 高精度惯性导航IMU供应商价格选型
  • 面向制造业的 AI Agent 架构与实战:任务驱动的智能协同新路径
  • 常见命令-资源查看-iostat命令实践
  • React 中 Context(上下文)介绍
  • ReAct Agent 原生代码实现(纯Python实现)
  • OpenAI推出开源GPT-oss-120b与GPT-oss-20b突破性大模型,支持商用与灵活部署!
  • 使用RestTemplate发送与接收http/https请求
  • 告别YAML,在SpringBoot中用数据库配置替代配置文件
  • 【JS】扁平树数据转为树结构
  • [激光原理与应用-172]:测量仪器 - 能量(焦耳)与功率(瓦)的图示比较
  • 14-netty基础-手写rpc-提供方(服务端)-06
  • Java NIO 核心原理与秋招高频面试题解析
  • day28-NFS
  • iOS混淆工具使用,后续维护与版本升级中实用的混淆策略
  • 代码随想录day58图论8
  • windows操作系统定时关机、重启指令记录
  • 一周学会Matplotlib3 Python 数据可视化-坐标轴 (Axis)
  • 进程间数据的关联与隔离
  • 管家婆软件如何设置默认税率?
  • AI创新中心从“空间集聚”到“生态共生”
  • 代码库详细笔记
  • P1690 贪婪的 Copy
  • [airplay2] airplay2简略介绍
  • 前端全局注册知识【持续更新】
  • 二分查找算法,并分析其时间、空间复杂度
  • IIS7.5下的https无法绑定主机头,显示灰色如何处理?
  • [ java SE ] 多人聊天窗口1.0
  • 强光干扰下裂缝漏检率↓82%!陌讯轻量化模型在道路巡检的落地实践