首页 > 其他分享 >打包需要将一些信息进行插入

打包需要将一些信息进行插入

时间:2023-11-17 17:37:19浏览次数:24  
标签:git fs 信息 插入 json version let 打包

vue打包的时候将git提交信息打包进去

  1. 在项目根目录下新建一个名为 preBuild.js 的脚本文件,内容如下:
const child_process = require("child_process");
const fs = require("fs");

let commitId = child_process
  .execSync(`git log -n1 --format=format:"%H"`)
  .toString();
let branch = child_process
  .execSync(`git branch --show-current`)
  .toString()
  .trim();
let commitTime = child_process
  .execSync(`git log -n1 --pretty=format:"%ad" --date=iso`)
  .toString()
  .substring(0, 19);

let j = { commitId, branch, commitTime };
fs.writeFileSync("./public/git_info.json", JSON.stringify(j));

console.log("========== Save git info done. ==========");

注意:./public/git_info.json 是生成版本信息文件的目录与文件名称

  1. 修改 package.json 文件的打包命令为:"node preBuild.js && vue-cli-service build"

  1. 在终端输入打包命令:npm run build,在项目根目录下的 public 目录下会生成一个 git_info.json 文件,同时在打包的 dist 目录下也会生成一个 git_info.json 文件,文件内容如下:
{
  "commitId": "0744c99ca7651d969871e94780b920d9f1909b4d",
  "branch": "master",
  "commitTime": "2022-02-25 16:07:42"
}

vue项目打包自动更新版本号

创建一个js

let fs = require("fs");
const dayjs = require("dayjs");

const getPackageJson = () => {
  let data = fs.readFileSync("./package.json"); //fs读取文件
  return JSON.parse(data); //转换为json对象
};
let packageData = getPackageJson();
const updateVersion = () => {
  let version = packageData.version.split(".");
  version[version.length - 1]++;
  packageData.version = version.join(".");
  packageData.lastBuildTime = dayjs().format("YYYY-MM-DD HH:mm:ss"); //最后打包时间
};
updateVersion();
fs.writeFile(
  "./package.json",
  JSON.stringify(packageData, null, "\t"),
  (err) => {
    if (err) {
      console.log("写入失败", err);
    } else {
      console.log("写入成功 " + packageData.version);
    }
  }
);

改一下 packjson 里面,build 定义的内容

"scripts": {
	"serve": "vue-cli-service serve",
	"build": "node ./buildVersion.js && vue-cli-service build"
}

执行 npm run build 后自动更新 version 和 lastBuildTime
在这里插入图片描述

标签:git,fs,信息,插入,json,version,let,打包
From: https://www.cnblogs.com/wp-leonard/p/17839278.html

相关文章

  • 一次完整的打包
    一次完整的webpack打包大致是这样的过程:将命令行参数与webpack配置文件合并、解析得到参数对象。参数对象传给webpack执行得到Compiler对象。执行Compiler的run方法开始编译。每次执行run编译都会生成一个Compilation对象。触发Compiler的make方法分析......
  • Nodejs打包构建时长优化
    优化策略底层软件硬件调整CI过程中主要的压力还是集中在IO方向,增加CI节点提高整个CI池子的容量,把之前节点使用的硬盘更换为SSD可以增加IO吞吐量。同时把用于CI的node节点在K8S集群中隔离开来,让CI服务独享这些资源避免与其他资源发生抢占。CI工作台优化优化CI工作台的代码,减......
  • nodejs项目打包提速
    node打包耗时分析             插件安装    cnpmi hard-source-webpack-plugin    官方地址      https://www.npmjs.com/package/hard-source-webpack-plugin    配置之后初次打包会觉得没什么差异,主要是会先......
  • dubbo打包
    参考链接:链接一注意依赖分别放在父,子pom文件,以及子pom文件的主函数路径。子项目打包:https://blog.csdn.net/Yu_luoluo/article/details/101691933打包注意主项目安装:https://blog.csdn.net/weixin_45565886/article/details/127917961......
  • 抖音号转uid工具,输入抖音ID自动转UID获取对方信息,精易模块v8.0实现
    用易语言实现的,实现非常简单,多余的我不介绍,你看下代码和设计的界面,还有设计。效果图:  下面是完整代码:==================================================.版本2.支持库spec.程序集窗口程序集_启动窗口.子程序_按钮1_被单击功能_网页访问(编辑框1.内容).子程......
  • 2023-2024-1 20211327 信息安全系统设计与实现 学习笔记10
    学习笔记块与I/O缓冲区I/O缓冲区管理算法比较实践过程块与I/O缓冲区块设备1.定义:块设备是一种数据存储设备,其数据以块为单位进行读写。块通常是一个固定大小的数据块,比如512字节或4KB。2.示例:硬盘驱动器、固态硬盘、光盘等都是块设备的例子。3.特点:数据以块为单位传......
  • 汇编-LABEL插入标号
     LABEL伪指令可以插入一个标号,并定义它的大小属性,但不为这个标号分配存储空间。LABEL可以使用所有的标准大小属性,如BYTE、WORD、DWORD、QWORD或TBYTE。LABEL通常的用法是,为在数据段中定义的下一个变量提供另一个名称和大小属性.386.modelflat,stdcall.stack4096E......
  • java智慧校园信息管理系统源码
    一、智慧校园的定义智慧校园指的是以云计算和物联网为基础的智慧化的校园工作、学习和生活一体化环境。以各种应用服务系统为载体,将教学、科研、管理和校园生活进行充分融合,让校园实现无处不在的网络学习、融合创新的网络科研、透明高效的校务治理、丰富多彩的校园文化、方便周到......
  • 盘点一个Python自动化办公需求之word文档图片自动插入
    大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Python自动化办公的问题,一起来看看吧。下面还给出了他的代码。二、实现过程这里【瑜亮老师】给了一个思路:如下所示:顺着这个思路,粉丝写了一份代码,但是在循环部分好像还存在些问题。后来【瑜亮老师......
  • python向jpg图片添加经纬度信息
    importpiexiffromPILimportImage #ReadImagefname='Wide.JPG'img=Image.open(fname)exif_dict={"GPS":{}}exif_dict['GPS'][piexif.GPSIFD.GPSLongitude]=((180,1),(17,1),(532029,1))exif_dict['GPS'][......