From 61dd390ae8df12ee5a607d39a890e476a0fcfb32 Mon Sep 17 00:00:00 2001 From: Colum Ferry Date: Tue, 20 Dec 2022 15:09:48 +0000 Subject: [PATCH] fix(angular): cache server build --- .../setup-ssr/lib/update-project-config.ts | 16 ++++++++++++++++ .../src/generators/setup-ssr/setup-ssr.spec.ts | 18 ++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/packages/angular/src/generators/setup-ssr/lib/update-project-config.ts b/packages/angular/src/generators/setup-ssr/lib/update-project-config.ts index 03cba1d26c2662..571a08240a53ff 100644 --- a/packages/angular/src/generators/setup-ssr/lib/update-project-config.ts +++ b/packages/angular/src/generators/setup-ssr/lib/update-project-config.ts @@ -2,7 +2,9 @@ import type { Tree } from '@nrwl/devkit'; import { joinPathFragments, readProjectConfiguration, + readWorkspaceConfiguration, updateProjectConfiguration, + updateWorkspaceConfiguration, } from '@nrwl/devkit'; import type { Schema } from '../schema'; @@ -72,4 +74,18 @@ export function updateProjectConfig(tree: Tree, schema: Schema) { }; updateProjectConfiguration(tree, schema.project, projectConfig); + + const workspaceConfig = readWorkspaceConfiguration(tree); + if ( + workspaceConfig.tasksRunnerOptions?.default && + !workspaceConfig.tasksRunnerOptions.default.options.cacheableOperations[ + 'server' + ] + ) { + workspaceConfig.tasksRunnerOptions.default.options.cacheableOperations = [ + ...workspaceConfig.tasksRunnerOptions.default.options.cacheableOperations, + 'server', + ]; + updateWorkspaceConfiguration(tree, workspaceConfig); + } } diff --git a/packages/angular/src/generators/setup-ssr/setup-ssr.spec.ts b/packages/angular/src/generators/setup-ssr/setup-ssr.spec.ts index eca187eb2edef9..7fd6a4355379d6 100644 --- a/packages/angular/src/generators/setup-ssr/setup-ssr.spec.ts +++ b/packages/angular/src/generators/setup-ssr/setup-ssr.spec.ts @@ -1,4 +1,5 @@ import { + NxJsonConfiguration, readJson, readProjectConfiguration, updateProjectConfiguration, @@ -130,6 +131,23 @@ describe('setupSSR', () => { for (const [dep, version] of Object.entries(devDeps)) { expect(packageJson.devDependencies[dep]).toEqual(version); } + const nxJson = readJson(tree, 'nx.json'); + expect(nxJson.tasksRunnerOptions).toMatchInlineSnapshot(` + Object { + "default": Object { + "options": Object { + "cacheableOperations": Array [ + "build", + "lint", + "test", + "e2e", + "server", + ], + }, + "runner": "nx/tasks-runners/default", + }, + } + `); }); it('should use fileReplacements if they already exist', async () => {