Commit 28af968
committed
fix(@angular/build): keep dev-server Vite cache worktree-local
When running within a Git worktree, the persistent build cache is shared
across worktrees by resolving relative to the common Git directory (main
repository root). While this works for location-agnostic compilation
caches (such as `ng build`'s SourceFileCache), it breaks `ng serve` when
server-side rendering (SSR) is enabled.
In SSR mode, Vite prebundles dependencies into `deps_ssr/`. Any external
or unbundled dependencies inside those prebundles contain bare imports
(e.g., `firebase-admin/data-connect`). Because Node.js resolves bare imports
relative to the prebundled file's location, placing `cacheDir` under the
main repository root causes Node.js to resolve imports against the main
repository's `node_modules` instead of the worktree's `node_modules`,
resulting in `Cannot find module` errors and HTTP 500 responses.
To resolve this, `NormalizedCachedOptions` now exposes `localBasePath`
and `localPath` which always resolve relative to the active workspace root.
The dev-server's Vite configuration now uses `localPath` for `cacheDir`,
ensuring prebundles remain within the worktree hierarchy where Node.js can
resolve the worktree's dependencies. Additionally, cache purging and
watcher ignore lists are updated to handle both shared and local cache
paths when they diverge.
Fixes #339681 parent ab6d7df commit 28af968
5 files changed
Lines changed: 109 additions & 16 deletions
File tree
- packages/angular/build/src
- builders
- application
- dev-server/vite
- utils
Lines changed: 5 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
123 | 123 | | |
124 | 124 | | |
125 | 125 | | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
126 | 131 | | |
127 | 132 | | |
128 | 133 | | |
| |||
Lines changed: 5 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
165 | 165 | | |
166 | 166 | | |
167 | 167 | | |
168 | | - | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
169 | 173 | | |
170 | 174 | | |
171 | 175 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
24 | 36 | | |
25 | 37 | | |
26 | 38 | | |
| |||
82 | 94 | | |
83 | 95 | | |
84 | 96 | | |
85 | | - | |
| 97 | + | |
86 | 98 | | |
87 | 99 | | |
88 | 100 | | |
| |||
106 | 118 | | |
107 | 119 | | |
108 | 120 | | |
109 | | - | |
| 121 | + | |
| 122 | + | |
110 | 123 | | |
111 | 124 | | |
112 | 125 | | |
113 | 126 | | |
114 | 127 | | |
| 128 | + | |
| 129 | + | |
115 | 130 | | |
116 | 131 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
| 32 | + | |
| 33 | + | |
32 | 34 | | |
33 | 35 | | |
34 | 36 | | |
| |||
51 | 53 | | |
52 | 54 | | |
53 | 55 | | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
54 | 108 | | |
55 | 109 | | |
56 | 110 | | |
| |||
69 | 123 | | |
70 | 124 | | |
71 | 125 | | |
| 126 | + | |
| 127 | + | |
72 | 128 | | |
73 | 129 | | |
74 | 130 | | |
| |||
78 | 134 | | |
79 | 135 | | |
80 | 136 | | |
| 137 | + | |
| 138 | + | |
81 | 139 | | |
82 | 140 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
23 | 26 | | |
24 | 27 | | |
25 | 28 | | |
26 | 29 | | |
27 | 30 | | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
34 | 34 | | |
35 | 35 | | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
41 | 51 | | |
42 | | - | |
| 52 | + | |
| 53 | + | |
43 | 54 | | |
0 commit comments