From 5097583c722a500e166b37c0fdc28f0ce929414d Mon Sep 17 00:00:00 2001 From: Damien Retzinger Date: Mon, 29 Jan 2024 12:05:00 -0500 Subject: [PATCH] build(daffio)!: use ng17 version of vercel build (#2739) Previously, used webpack to bundle the serverless app together. We no longer have to do this due to support for ng17 and esm chunks in https://github.com/graycoreio/github-actions/tree/main/angular-universal-vercel --- .github/workflows/deploy.yml | 4 ++- .github/workflows/deploy_preview.yml | 1 + apps/daffio/package.json | 6 +---- apps/daffio/server/server.ts | 17 +++++++++++- apps/daffio/serverless/serverless.js | 3 --- apps/daffio/serverless/vercel/.vercelignore | 1 - .../serverless/webpack.serverless.config.js | 27 ------------------- 7 files changed, 21 insertions(+), 38 deletions(-) delete mode 100644 apps/daffio/serverless/serverless.js delete mode 100644 apps/daffio/serverless/vercel/.vercelignore delete mode 100644 apps/daffio/serverless/webpack.serverless.config.js diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 3705ccbc8e..5505b60f56 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -42,6 +42,7 @@ jobs: vercel_token: ${{ secrets.VERCEL_TOKEN }} vercel_org: ${{ secrets.VERCEL_ORG }} vercel_project_id: ${{ secrets.VERCEL_NEXT_PROJECT_ID }} + ng_version: '17' production: name: 'Production' @@ -65,4 +66,5 @@ jobs: prod: true vercel_token: ${{ secrets.VERCEL_TOKEN }} vercel_org: ${{ secrets.VERCEL_ORG }} - vercel_project_id: ${{ secrets.VERCEL_PROJECT_ID }} \ No newline at end of file + vercel_project_id: ${{ secrets.VERCEL_PROJECT_ID }} + ng_version: '17' \ No newline at end of file diff --git a/.github/workflows/deploy_preview.yml b/.github/workflows/deploy_preview.yml index ed2a1ed501..ebbc9f8b86 100644 --- a/.github/workflows/deploy_preview.yml +++ b/.github/workflows/deploy_preview.yml @@ -37,3 +37,4 @@ jobs: vercel-token: ${{ secrets.VERCEL_TOKEN }} vercel-org: ${{ secrets.VERCEL_ORG }} vercel-project-id: ${{ secrets.VERCEL_DAFFIO_NEXT_PROJECT_ID }} + ng-version: '17' diff --git a/apps/daffio/package.json b/apps/daffio/package.json index dbe01557da..c5fb76fda8 100644 --- a/apps/daffio/package.json +++ b/apps/daffio/package.json @@ -15,11 +15,7 @@ } }, "scripts": { - "build": "npm run build:app && npm run build:serverless", - "build:app": "ng build daffio --configuration production", - "build:serverless": "npm run build:serverless:compile && npm run build:serverless:vercel", - "build:serverless:compile": "webpack-cli --config serverless/webpack.serverless.config.js", - "build:serverless:vercel": "shx cp -r ./serverless/vercel/. ../../dist/apps/daffio/", + "build": "ng build daffio --configuration production", "test": "ng test daffio --watch=false --browsers=ChromeHeadless", "lint": "cd ../.. && ng lint daffio", "lint:fix": "npm run lint -- --fix", diff --git a/apps/daffio/server/server.ts b/apps/daffio/server/server.ts index 0fa3345e8a..00c929fb53 100644 --- a/apps/daffio/server/server.ts +++ b/apps/daffio/server/server.ts @@ -66,6 +66,21 @@ function run(): void { }); } -run(); +/** + * Determine whether or not the file is the main file run via + * `node path/to/server.js` + * + * If it is, likely you're running npm run serve:ssr and you want + * to run the server locally. + * + * If it isn't, you're probably importing the module to use in a severless + * environment and that command controls running the server. + */ +const isMainModule = import.meta.url === `file://${process.argv[1]}`; + +if (isMainModule) { + run(); +} + export * from '../src/main.server'; diff --git a/apps/daffio/serverless/serverless.js b/apps/daffio/serverless/serverless.js deleted file mode 100644 index 26744f2b7e..0000000000 --- a/apps/daffio/serverless/serverless.js +++ /dev/null @@ -1,3 +0,0 @@ -const server = require('../../../dist/apps/daffio/server/main.server'); - -module.exports = server.app(); diff --git a/apps/daffio/serverless/vercel/.vercelignore b/apps/daffio/serverless/vercel/.vercelignore deleted file mode 100644 index 1550f16295..0000000000 --- a/apps/daffio/serverless/vercel/.vercelignore +++ /dev/null @@ -1 +0,0 @@ -server/ \ No newline at end of file diff --git a/apps/daffio/serverless/webpack.serverless.config.js b/apps/daffio/serverless/webpack.serverless.config.js deleted file mode 100644 index 79c88e274a..0000000000 --- a/apps/daffio/serverless/webpack.serverless.config.js +++ /dev/null @@ -1,27 +0,0 @@ -const path = require('path'); - -const PATHS = { - src: path.join(__dirname, './'), - dist: path.join(__dirname, '../../../dist/apps/daffio'), -}; - - -module.exports = { - mode: 'none', - entry: { serverless: path.join(PATHS.src, 'serverless.js') }, - output: { - libraryTarget: 'commonjs2', - path: path.join(PATHS.dist, 'api'), - filename: '[name].js' - }, - resolve: { - extensions: ['.mjs', '.js'], - modules: [path.resolve(__dirname, './../../../node_modules')] - }, - target: 'node', - node: { - __dirname: false, - }, - // this makes sure we include node_modules and other 3rd party libraries - externals: [/(node_modules|main\..*\.js|.*\.txt|.*\.map)/] -} \ No newline at end of file