若存在confuse命令则进行混淆

This commit is contained in:
qcqcqc@wsl 2025-10-29 13:07:18 +08:00
parent 0b521a16c6
commit 08c093f3fc
2 changed files with 27 additions and 2 deletions

15
dist/cli.js vendored
View File

@ -112,11 +112,13 @@ function generateDockerfile(projectName, options) {
const allProjects = [projectName];
allProjects.push(...extra);
console.log("\n\u{1F50D} \u68C0\u67E5\u9879\u76EE\u4F9D\u8D56\u5173\u7CFB...");
const projectPackageMap = {};
for (const project of allProjects) {
console.log(`\u68C0\u67E5\u9879\u76EE: ${project}`);
const packageJsonPath = path.join(pwd, project, "package.json");
if (fs.existsSync(packageJsonPath)) {
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
projectPackageMap[project] = packageJson;
const dependencies = packageJson.dependencies || {};
for (const dep in dependencies) {
if (dependencies[dep].startsWith("file:../")) {
@ -160,8 +162,19 @@ WORKDIR /app/${project}
RUN npm install
`;
if (project === projectName) {
dockerfile += `RUN npm run make:domain && npm run build
const pkjson = projectPackageMap[project];
if (pkjson.scripts && pkjson.scripts["make:domain"]) {
dockerfile += `RUN npm run make:domain
`;
}
if (pkjson.scripts && pkjson.scripts["build"]) {
dockerfile += `RUN npm run build
`;
}
if (pkjson.scripts && pkjson.scripts["confuse"]) {
dockerfile += `RUN npm run confuse
`;
}
} else {
dockerfile += `RUN npm run build || true
`;

View File

@ -150,11 +150,14 @@ function generateDockerfile(
console.log("\n🔍 检查项目依赖关系...");
// 需要遍历所有项目的package.json确定file:../这种,然后确保没有遗漏
const projectPackageMap: { [key: string]: any } = {};
for (const project of allProjects) {
console.log(`检查项目: ${project}`);
const packageJsonPath = path.join(pwd, project, "package.json");
if (fs.existsSync(packageJsonPath)) {
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
projectPackageMap[project] = packageJson;
const dependencies = packageJson.dependencies || {};
for (const dep in dependencies) {
if (dependencies[dep].startsWith("file:../")) {
@ -204,7 +207,16 @@ RUN npm install
// 主项目需要执行 make:domain 和 build
if (project === projectName) {
dockerfile += `RUN npm run make:domain && npm run build\n`;
const pkjson = projectPackageMap[project];
if (pkjson.scripts && pkjson.scripts["make:domain"]) {
dockerfile += `RUN npm run make:domain\n`;
}
if (pkjson.scripts && pkjson.scripts["build"]) {
dockerfile += `RUN npm run build\n`;
}
if (pkjson.scripts && pkjson.scripts["confuse"]) {
dockerfile += `RUN npm run confuse\n`;
}
} else {
// 其他项目可能只需要 build或者根据实际情况调整
dockerfile += `RUN npm run build || true\n`;