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
|
} = require('./helper');
|
const { execSync } = require('child_process');
|
if (customerList?.length !== 1) {
|
logError(`请正确使用命令 “npm run build customer”(目前只支持一次部署一个)`);
|
exit(); // 退出脚本
|
}
|
checkCustomer('npm run build', firstCustomerName);
|
copyFile();
|
|
|
// 复制amis-editor 到 public文件夹中
|
const amisEditorPath = path.join(rootDir,'amis-editor');
|
const targetPath = path.join(publicDir,'amis-editor')
|
const isExist = fs.pathExistsSync(amisEditorPath);
|
if(!isExist){
|
logWarn('amis-editor 不存在!');
|
}else{
|
const isExist = fs.pathExistsSync(targetPath);
|
if(!isExist){
|
fs.mkdirSync(targetPath);
|
}
|
const res = fs.copySync(amisEditorPath,targetPath)
|
res ?? logSuccess('========= 已集成 amis-editor =========')
|
}
|
|
// 更改 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
|