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

项目根目录添加<meta>标签,记录当前部署版本、分支、时间

一、背景

为了管理、追踪问题查阅方便,在根目录添加标签,记录当前部署项目的版本、分支、部署时间,项目环境(测试环境 or 线上环境);

二、步骤

1. 创建文件
 - 在项目根目录下创建 scripts 文件夹(如果不存在);- 在scripts下创建 inject-meta.js 脚本文件;
2. 脚本核心功能实现
- 获取Git分支信息:使用   git rev-parse --abbrev-ref HEAD  命令;
- 获取当前时间:格式化为:YY - MM - dd  HH - mm - ss;
- 生成meta标签:包含分支名和构建时间信息;
- HTML文件处理:读取、修改并写回html文件;
- 确定HTML文件路径:  根据实际情况获取正确的html文件路径;
const fs = require('fs')
const path = require('path')
const { execSync } = require('child_process')// 获取当前分支名
let branch = 'unknown'
try {branch = execSync('git rev-parse --abbrev-ref HEAD').toString().trim()
} catch (e) {}// 获取当前打包时间
const now = new Date()
const pad = n => n.toString().padStart(2, '0')
const buildTime = `${now.getFullYear()}-${pad(now.getMonth() + 1)}-${pad(now.getDate())} ${pad(now.getHours())}:${pad(now.getMinutes())}:${pad(now.getSeconds())}`// 生成 meta 标签
const metaTag = `<meta name="branch-info" content="Branch: ${branch} | Build Time: ${buildTime}">`// 你的 index.html 路径(如有不同请修改)
const htmlPath = path.resolve(__dirname, '../dist/index.html')
let html = fs.readFileSync(htmlPath, 'utf-8')// 插入 meta 到 <head> 后面
if (!html.includes('name="branch-info"')) {html = html.replace(/<head>/, `<head>\n    ${metaTag}`)fs.writeFileSync(htmlPath, html, 'utf-8')console.log('✅ branch-info meta tag injected!')
} else {console.log('ℹ️ branch-info meta tag already exists.')
}
3. 集成到构建流程
在package.json中配置:每个包名后增加:‘  && node scripts/inject-meta.js ’

在这里插入图片描述

http://www.xdnf.cn/news/887455.html

相关文章:

  • 分布式光纤传感(DAS)技术应用解析:从原理到落地场景
  • Python语法进阶篇 --- 类和对象
  • git连接本地仓库以及gitee
  • TypeScript进阶知识点
  • 14.AI搭建preparationのBERT预训练模型进行文本分类
  • 企业入驻成都芯谷金融中心·文化科技产业园优势深度解析
  • 浅谈 Linux 防火墙:从原理到实践
  • JSON Web Token (JWT) 详解:由来、原理与应用实践
  • FPGA 的硬件结构
  • Cursor 集成 Figma MCP 实现阅读理解原型图生成方案
  • 【Fifty Project - D33】
  • PlayWright | 初识微软出品的 WEB 应用自动化测试框架
  • 记一次 Windows XP 系统安装配置 Minio
  • vue对axios的封装和使用
  • 在 UE5 蓝图中配置Actor类型的Asset以作为位置和旋转设置目标
  • 动态表单 LiveCycle 与 AcroForms 对比
  • VAE变分自编码器详解
  • 用 NGINX 搭建高效 IMAP 代理`ngx_mail_imap_module`
  • v-if与v-for联合使用
  • IDEA 开发PHP配置调试插件XDebug
  • 【C++11新特性】
  • 移动应用开发期末复习
  • 能不能用string接收数据库的datetime类型字段
  • ServBay 1.13.0 更新,新增第三方反向代理/内网穿透
  • 【C语言练习】082. 使用C语言实现简单的加密算法
  • 钉钉 - 机器人消息推送(签名版)
  • 【C++高阶二】STL的map和set
  • 软件测试基础知识总结
  • 基于51单片机的温控电机系统
  • Axure 与 Cursor 集成实现方案