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

前端子项目打包集成主项目实战指南

引言

在实际项目开发中,需要将一个独立的前端子项目集成到主项目中。由于部署限制,意味着这两个项目必须要部署在同一个服务器上,不符合我接收到的要求,以下为本人解决的具体步骤和原理:

解决方案概述

  • 子项目:纯前端完整项目
  • 主项目:前后端完整项目
  • 集成方式:子项目构建输出到主项目public目录,主项目通过iframe引用

实施步骤

1. 子项目配置修改打包目录路径

// vite.config.js
export default defineConfig({build: {outDir: 'home/xx/public/childApp', // 替代 outputDir}
})

注意事项‌:

  • 确保打包位置是主项目的public文件夹
  • 其他位置会导致部署后资源不可用
2. 主项目引用
//主项目中任意层级文件中引用,直接以 / 开头引用 public 下的资源<iframe src='/childApp/index.html'/> 

原理说明

为什么使用public目录?

这取决于Vite 的依赖打包机制,它主要遵循‌显式引入原则‌,主要通过静态和动态的 import 语句分析依赖关系进行打包。子包没有被引入,又放在非public文件夹下,则主项目打包部署时不会被打包。就会出现本地可以iframe正常引用,打包部署后查找不到该文件则出现问题。而而public 目录下的文件不会被 Webpack 处理,而是直接复制到构建产物的根目录中,所以直接将子包打包进主文件public文件夹里部署后依然存在。

为什么使用绝对路径?

相对路径(如../public/childApp/index.html)在构建后可能因目录结构变化而失效。绝对路径(/childApp/index.html)能稳定定位public目录下的资源。

方案优势

  1. 满足部署限制要求
  2. 保持子项目独立性
  3. 部署后资源稳定可用

验证方法

部署后检查:

  1. 构建产物中是否包含子项目文件
  2. iframe是否能正常加载子项目内容

相关文章:

  • SOC-ESP32S3部分:1、ESP32开发IDF-5.4环境搭建
  • RV1126多线程获取SMARTP的GOP模式数据和普通GOP模式数据
  • 第二届parloo杯的RSA_Quartic_Quandary
  • 系统架构设计师考前冲刺笔记-第3章-软件架构设计
  • Pod 节点数量
  • 【Redis】快速列表结构
  • 没有公网ip怎么端口映射外网访问?使用内网穿透可以解决
  • upload-labs通关笔记-第12关 文件上传之白名单GET法
  • 氩气模块压力异常时的维修方法,要注意仪器的安全操作规范,避免对仪器造成二次损坏
  • Python训练营打卡 Day30
  • JavaWeb:Spring配置文件( @ConfigurationProperties)
  • centos把jar包配置成服务并设置开机自启
  • AIGC工具平台-卡通图片2D转绘3D
  • Docker构建 Dify 应用定时任务助手
  • linux系统双击EXE运行,在统信UOS上无缝运行EXE!统信Windows应用兼容引擎V3来了
  • PyTorch模型保存方式
  • 【软考-架构】15、软件架构的演化和维护
  • 力扣热题100之删除链表的倒数第N个节点
  • 鸿蒙 Location Kit(位置服务)
  • 双周报Vol.72:字段级文档注释支持、视图类型现为值类型,减少内存分配
  • 改造老旧小区、建立“一张图”,五部委将多举措支持城市更新
  • 66岁华仁世纪集团有限公司创始人、董事长梁福东逝世
  • 文化厚度与市场温度兼具,七猫文学为现实题材作品提供土壤
  • 一季度支持科技创新和制造业发展减税降费及退税4241亿元
  • 美俄亥俄州北部发生火车撞人事故,致2人死亡、至少1人失踪
  • 上海位居全球40城科技传播能力第六名