const path = require('path'); const fs = require('fs-extra'); const { copyFile, distDir, customerList, updateImportGlob, logError, restoreImportGlob, replaceFileContent, exit, firstCustomerName, checkCustomer, formatDate, logSuccess, logWarn, rootDir, publicDir, changeBranch } = require('./helper'); const { execSync } = require('child_process'); if (customerList?.length !== 1) { logError(`请正确使用命令 “npm run build customer”(目前只支持一次部署一个)`); exit(); // 退出脚本 } checkCustomer('npm run build', firstCustomerName); copyFile(); // 更改 import.meta.glob updateImportGlob(); try { execSync('vite build', { stdio: 'inherit' }); } catch (err) { logError(err); } finally { // 恢复文件 restoreImportGlob(); } //#region ====================== 修改 dist 文件中 index.html 中的引入 js 的 v 值 ====================== const htmlFile = path.join(distDir, 'index.html'); replaceFileContent(htmlFile, (data) => { // 替换为新的 v 值 const currentStamp = new Date().getTime() + ''; const newData = data.replace(/(?<=\/static\/config\/.*.js\?v=).*(?=")/g, currentStamp); return newData; }); logSuccess(`${formatDate(new Date(), 'HH:MM:SS')} > 🎉🎉🎉【${customerList.join(',')}】项目已成功构建!🎉🎉🎉`); //#endregion