import { writeFileSync, existsSync, readFileSync } from "fs"; import { execSync } from "child_process"; import moment from "moment"; import packageJson from "./package.json" assert { type: "json" }; import * as readline from "node:readline/promises"; import { stdin as input, stdout as output } from "node:process"; console.log("> prebuild"); console.log("> prebuild create .env.*.local"); // const packageJson = require("./package.json"); const buildDate = moment().format("YYYY-MM-DD HH:mm:ss"); console.log(" 构建日期为 " + buildDate); // eslint-disable-next-line @typescript-eslint/no-unsafe-call const revision = execSync("git rev-parse HEAD").toString().trim().slice(0, 7); console.log(" 当前的git版本为 " + revision); const branchName = execSync("git branch --show-current").toString().trim(); const branchNum = branchName.match(/.*(\d+\.\d+.\d+)$/)[1]; if (branchNum !== packageJson.version) { const rl = readline.createInterface({ input, output }); /** @type string */ const answer = await rl.question( "package.json的版本号与git分支不一致,是否停止构建?(Y/N)" ); console.log(`${answer}`); rl.close(); const upAnswer = answer.toUpperCase(); if (upAnswer === "Y") { process.exit(1); } else if (upAnswer === "N") { console.log("继续构建"); } else { console.error("无效输入"); process.exit(1); } } // eslint-disable-next-line @typescript-eslint/no-unsafe-call writeFileSync( ".env.production.local", `VITE_FE_VERSION=${packageJson.version} VITE_BUILD_DATE=${buildDate} VITE_GIT_REPO_VERSION=${revision} ` ); // 如果不存在则创建,对真正的构建无影响 // if ( // !existsSync("./src/devLoginParams.ts") && // !readFileSync("./src/devLoginParams.ts").toString().includes("LOGIN_CONFIG") // ) { // writeFileSync( // "./src/devLoginParams.ts", // ` // export const LOGIN_CONFIG = { // isAdmin: false, // forceChange: true, // loginName: "1-431-2-1", // password: "123456", // examId: "1", // markerId: "451", // }; // ` // ); // } console.log();