免费制作微信小程序的网站,小城镇建设网站的观点,网站建设销售培训语,制作网站的网页需求背景#xff1a; 前端项目经常打包#xff0c;发包部署#xff0c;为了方便测试及运维发现问题时与正确commit信息对比 实现方式#xff1a; 使用Node.js的child_process模块来执行git命令 实现步骤#xff1a; 1.在package.json的同级目录下新建一个version.js文件。…需求背景 前端项目经常打包发包部署为了方便测试及运维发现问题时与正确commit信息对比 实现方式 使用Node.js的child_process模块来执行git命令 实现步骤 1.在package.json的同级目录下新建一个version.js文件。内容可根据自己的实际需求来定
const execSync require(child_process).execSync;
const fs require(fs);// 读取package.json文件
const data fs.readFileSync(./package.json);
const packageData JSON.parse(data);// 获取git信息的相关命令
const COMMITHASH_COMMAND rev-parse HEAD;
const VERSION_COMMAND describe --always;
const BRANCH_COMMAND rev-parse --abbrev-ref HEAD;
const NEW_COMMIT_MESSAGE log -1 --pretty%B;
const COMMIT_TIME show -s --format%cd;
try {const d new Date();const commitId execSync(git ${COMMITHASH_COMMAND}).toString().trim();const branch execSync(git ${BRANCH_COMMAND}).toString().trim();const release execSync(git ${VERSION_COMMAND}).toString().trim();const commitMessage execSync(git ${NEW_COMMIT_MESSAGE}).toString().trim();const commitTime execSync(git ${COMMIT_TIME}).toString().trim();const versionStr COMMIT_ID: ${commitId}Branch: ${branch}Release: ${release}CommitMessage: ${commitMessage}CommitTime: ${commitTime}PackingTime: ${d.getFullYear()}-${d.getMonth() 1}-${d.getDate()} ${d.getHours()}:${d.getMinutes()}Version: ${packageData.version};fs.writeFileSync(dist/version.txt, versionStr);
} catch (e) {throw new Error(e);
}2.修改package.json的打包脚本 3.使用npm run build:prod进行打包会输出version.txt文件在dist目录下 详情如下
ps: 在浏览器环境下直接执行 Node.js 的 child_process 模块是不可行的因为浏览器环境无法直接访问操作系统的命令行