From 4756d7e0675aa9a8bed11b830b66288141fa6e16 Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Wed, 14 Sep 2022 07:31:44 +0000 Subject: [PATCH] fix(@angular-devkit/build-angular): watch symbolic links This commit addresses an issue which caused symbolic links not to be watched properly. Closes #15100 (cherry picked from commit 2021e66a12fb873140d54cff82968a10e3ffa010) --- .../src/webpack/configs/common.ts | 9 ++++++ .../e2e/tests/build/rebuild-symlink.ts | 31 +++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 tests/legacy-cli/e2e/tests/build/rebuild-symlink.ts diff --git a/packages/angular_devkit/build_angular/src/webpack/configs/common.ts b/packages/angular_devkit/build_angular/src/webpack/configs/common.ts index 17268046b483..636e9ef073da 100644 --- a/packages/angular_devkit/build_angular/src/webpack/configs/common.ts +++ b/packages/angular_devkit/build_angular/src/webpack/configs/common.ts @@ -334,8 +334,17 @@ export async function getCommonConfig(wco: WebpackConfigOptions): Promise { + configJson.projects['test-project'].architect.build.options.preserveSymlinks = true; + }); + + await writeMultipleFiles({ + 'src/link-source.ts': '// empty file', + 'src/main.ts': `import './link-dest';`, + }); + + await symlink(resolve('src/link-source.ts'), resolve('src/link-dest.ts')); + + await execAndWaitForOutputToMatch( + 'ng', + ['build', '--watch', '--configuration=development'], + buildReadyRegEx, + ); + + // Trigger a rebuild + await appendToFile('src/link-source.ts', `console.log('foo-bar');`); + await waitForAnyProcessOutputToMatch(buildReadyRegEx); + await expectFileToMatch('dist/test-project/main.js', `console.log('foo-bar')`); +}