From 567d35e8d4299bb8dbb54dd23d4058c468c5de32 Mon Sep 17 00:00:00 2001 From: yuangwang Date: Wed, 20 Nov 2024 16:56:10 -0600 Subject: [PATCH 1/4] skip build if .apphosting dir exists already --- packages/@apphosting/adapter-angular/src/bin/build.ts | 11 +++++++---- packages/@apphosting/adapter-angular/src/utils.ts | 7 +++++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/packages/@apphosting/adapter-angular/src/bin/build.ts b/packages/@apphosting/adapter-angular/src/bin/build.ts index cc67f4a8..5619045e 100644 --- a/packages/@apphosting/adapter-angular/src/bin/build.ts +++ b/packages/@apphosting/adapter-angular/src/bin/build.ts @@ -4,6 +4,7 @@ import { checkBuildConditions, validateOutputDirectory, parseOutputBundleOptions, + outputBundleExists } from "../utils.js"; import { getBuildOptions, runBuild } from "@apphosting/common"; @@ -22,7 +23,9 @@ if (!output) { throw new Error("No output from Angular build command, expecting a build manifest file."); } const outputBundleOptions = parseOutputBundleOptions(output); -const root = process.cwd(); -await generateBuildOutput(root, outputBundleOptions, process.env.FRAMEWORK_VERSION); - -await validateOutputDirectory(outputBundleOptions); +if (!outputBundleExists(outputBundleOptions)){ + const root = process.cwd(); + await generateBuildOutput(root, outputBundleOptions, process.env.FRAMEWORK_VERSION); + + await validateOutputDirectory(outputBundleOptions); +} diff --git a/packages/@apphosting/adapter-angular/src/utils.ts b/packages/@apphosting/adapter-angular/src/utils.ts index 357b750b..0eba7a76 100644 --- a/packages/@apphosting/adapter-angular/src/utils.ts +++ b/packages/@apphosting/adapter-angular/src/utils.ts @@ -226,3 +226,10 @@ export const isMain = (meta: ImportMeta) => { if (!process.argv[1]) return false; return process.argv[1] === fileURLToPath(meta.url); }; + +export const outputBundleExists = (outputBundleOptions: OutputBundleOptions) => { + if (existsSync(dirname(outputBundleOptions.bundleYamlPath))){ + return true; + } + return false; +} \ No newline at end of file From 7ccf54d7e0876dc31957473bb65f75ab6ff4c9f1 Mon Sep 17 00:00:00 2001 From: Wei Wang Date: Wed, 20 Nov 2024 23:30:47 +0000 Subject: [PATCH 2/4] change builder requirements --- .../adapter-angular/src/bin/build.ts | 4 ++-- .../@apphosting/adapter-angular/src/utils.ts | 20 +++++++++++-------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/packages/@apphosting/adapter-angular/src/bin/build.ts b/packages/@apphosting/adapter-angular/src/bin/build.ts index 5619045e..ace96f8a 100644 --- a/packages/@apphosting/adapter-angular/src/bin/build.ts +++ b/packages/@apphosting/adapter-angular/src/bin/build.ts @@ -22,8 +22,8 @@ const { stdout: output } = await runBuild(); if (!output) { throw new Error("No output from Angular build command, expecting a build manifest file."); } -const outputBundleOptions = parseOutputBundleOptions(output); -if (!outputBundleExists(outputBundleOptions)){ +if (!outputBundleExists()){ + const outputBundleOptions = parseOutputBundleOptions(output); const root = process.cwd(); await generateBuildOutput(root, outputBundleOptions, process.env.FRAMEWORK_VERSION); diff --git a/packages/@apphosting/adapter-angular/src/utils.ts b/packages/@apphosting/adapter-angular/src/utils.ts index 0eba7a76..6b13027b 100644 --- a/packages/@apphosting/adapter-angular/src/utils.ts +++ b/packages/@apphosting/adapter-angular/src/utils.ts @@ -24,7 +24,10 @@ const __filename = fileURLToPath(import.meta.url); const __dirname = dirname(__filename); const SIMPLE_SERVER_FILE_PATH = join(__dirname, "simple-server", "bundled_server.mjs"); -export const REQUIRED_BUILDER = "@angular-devkit/build-angular:application"; +export const ALLOWED_BUILDERS = [ + "@angular-devkit/build-angular:application", + "@analogjs/platform:vite" +]; /** * Check if the following build conditions are satisfied for the workspace: @@ -38,10 +41,10 @@ export async function checkBuildConditions(opts: BuildOptions): Promise { const output = execSync(`npx nx show project ${opts.projectName}`); const projectJson = JSON.parse(output.toString()); const builder = projectJson.targets.build.executor; - if (builder !== REQUIRED_BUILDER) { + if (!ALLOWED_BUILDERS.includes(builder)) { throw new Error( - "Only the Angular application builder is supported. Please refer to https://angular.dev/tools/cli/build-system-migration#for-existing-applications guide to upgrade your builder to the Angular application builder. ", - ); + `Currently, only the following builders are supported: ${ALLOWED_BUILDERS.join(',')}.`, + ) } return; } @@ -75,9 +78,9 @@ export async function checkBuildConditions(opts: BuildOptions): Promise { if (!workspaceProject.targets.has(target)) throw new Error("Could not find build target."); const { builder } = workspaceProject.targets.get(target)!; - if (builder !== REQUIRED_BUILDER) { + if (!ALLOWED_BUILDERS.includes(builder)) { throw new Error( - "Only the Angular application builder is supported. Please refer to https://angular.dev/tools/cli/build-system-migration#for-existing-applications guide to upgrade your builder to the Angular application builder. ", + `Currently, only the following builders are supported: ${ALLOWED_BUILDERS.join(',')}.`, ); } } @@ -227,8 +230,9 @@ export const isMain = (meta: ImportMeta) => { return process.argv[1] === fileURLToPath(meta.url); }; -export const outputBundleExists = (outputBundleOptions: OutputBundleOptions) => { - if (existsSync(dirname(outputBundleOptions.bundleYamlPath))){ +export const outputBundleExists = () => { + const outputBundleDir = resolve(".apphosting"); + if (existsSync(outputBundleDir)){ return true; } return false; From 0c9d2f1629144ea493afb95d81e0e775d0ec3521 Mon Sep 17 00:00:00 2001 From: yuangwang Date: Thu, 21 Nov 2024 15:20:51 -0600 Subject: [PATCH 3/4] fix lint --- packages/@apphosting/adapter-angular/src/bin/build.ts | 6 +++--- packages/@apphosting/adapter-angular/src/utils.ts | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/@apphosting/adapter-angular/src/bin/build.ts b/packages/@apphosting/adapter-angular/src/bin/build.ts index 5619045e..55d5643b 100644 --- a/packages/@apphosting/adapter-angular/src/bin/build.ts +++ b/packages/@apphosting/adapter-angular/src/bin/build.ts @@ -4,7 +4,7 @@ import { checkBuildConditions, validateOutputDirectory, parseOutputBundleOptions, - outputBundleExists + outputBundleExists, } from "../utils.js"; import { getBuildOptions, runBuild } from "@apphosting/common"; @@ -23,9 +23,9 @@ if (!output) { throw new Error("No output from Angular build command, expecting a build manifest file."); } const outputBundleOptions = parseOutputBundleOptions(output); -if (!outputBundleExists(outputBundleOptions)){ +if (!outputBundleExists(outputBundleOptions)) { const root = process.cwd(); await generateBuildOutput(root, outputBundleOptions, process.env.FRAMEWORK_VERSION); - + await validateOutputDirectory(outputBundleOptions); } diff --git a/packages/@apphosting/adapter-angular/src/utils.ts b/packages/@apphosting/adapter-angular/src/utils.ts index 0eba7a76..778478fa 100644 --- a/packages/@apphosting/adapter-angular/src/utils.ts +++ b/packages/@apphosting/adapter-angular/src/utils.ts @@ -227,9 +227,9 @@ export const isMain = (meta: ImportMeta) => { return process.argv[1] === fileURLToPath(meta.url); }; -export const outputBundleExists = (outputBundleOptions: OutputBundleOptions) => { - if (existsSync(dirname(outputBundleOptions.bundleYamlPath))){ +export const outputBundleExists = (outputBundleOptions: OutputBundleOptions) => { + if (existsSync(dirname(outputBundleOptions.bundleYamlPath))) { return true; } return false; -} \ No newline at end of file +}; From c693a8ad67ea5f5430a476e0a2daec7436fa52f9 Mon Sep 17 00:00:00 2001 From: yuangwang Date: Thu, 21 Nov 2024 15:25:01 -0600 Subject: [PATCH 4/4] fix lint --- .../@apphosting/adapter-angular/src/bin/build.ts | 2 +- packages/@apphosting/adapter-angular/src/utils.ts | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/packages/@apphosting/adapter-angular/src/bin/build.ts b/packages/@apphosting/adapter-angular/src/bin/build.ts index d4572227..5ea5c803 100644 --- a/packages/@apphosting/adapter-angular/src/bin/build.ts +++ b/packages/@apphosting/adapter-angular/src/bin/build.ts @@ -22,7 +22,7 @@ const { stdout: output } = await runBuild(); if (!output) { throw new Error("No output from Angular build command, expecting a build manifest file."); } -if (!outputBundleExists()){ +if (!outputBundleExists()) { const outputBundleOptions = parseOutputBundleOptions(output); const root = process.cwd(); await generateBuildOutput(root, outputBundleOptions, process.env.FRAMEWORK_VERSION); diff --git a/packages/@apphosting/adapter-angular/src/utils.ts b/packages/@apphosting/adapter-angular/src/utils.ts index e4fd26de..c953c4e7 100644 --- a/packages/@apphosting/adapter-angular/src/utils.ts +++ b/packages/@apphosting/adapter-angular/src/utils.ts @@ -26,7 +26,7 @@ const SIMPLE_SERVER_FILE_PATH = join(__dirname, "simple-server", "bundled_server export const ALLOWED_BUILDERS = [ "@angular-devkit/build-angular:application", - "@analogjs/platform:vite" + "@analogjs/platform:vite", ]; /** @@ -43,8 +43,8 @@ export async function checkBuildConditions(opts: BuildOptions): Promise { const builder = projectJson.targets.build.executor; if (!ALLOWED_BUILDERS.includes(builder)) { throw new Error( - `Currently, only the following builders are supported: ${ALLOWED_BUILDERS.join(',')}.`, - ) + `Currently, only the following builders are supported: ${ALLOWED_BUILDERS.join(",")}.`, + ); } return; } @@ -80,7 +80,7 @@ export async function checkBuildConditions(opts: BuildOptions): Promise { const { builder } = workspaceProject.targets.get(target)!; if (!ALLOWED_BUILDERS.includes(builder)) { throw new Error( - `Currently, only the following builders are supported: ${ALLOWED_BUILDERS.join(',')}.`, + `Currently, only the following builders are supported: ${ALLOWED_BUILDERS.join(",")}.`, ); } } @@ -230,9 +230,9 @@ export const isMain = (meta: ImportMeta) => { return process.argv[1] === fileURLToPath(meta.url); }; -export const outputBundleExists = () => { +export const outputBundleExists = () => { const outputBundleDir = resolve(".apphosting"); - if (existsSync(outputBundleDir)){ + if (existsSync(outputBundleDir)) { return true; } return false;