Skip to content

Commit 7256d2c

Browse files
committed
fix(@angular/build): exclude JSON imports from Vite dependency optimization
Importing `.json` files (such as package.json files from third-party packages) causes Vite's dependency optimizer to throw errors and warnings during `ng serve`, as Vite is unable to optimize non-JS/TS modules: `Cannot optimize dependency: @pkg-name/package.json, present in client 'optimizeDeps.include'` This fix filters out any implicit dependencies ending in `.json` in the `updateExternalMetadata` utility, preventing them from being included in Vite's `optimizeDeps.include` array. Closes #33280
1 parent f472d2b commit 7256d2c

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

  • packages/angular/build/src/tools/vite

packages/angular/build/src/tools/vite/utils.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,8 +140,12 @@ export function updateExternalMetadata(
140140
}
141141

142142
const { implicitBrowser, implicitServer, explicit } = result.detail['externalMetadata'];
143-
const implicitServerFiltered = implicitServer.filter((m) => !isBuiltin(m) && !isAbsoluteUrl(m));
144-
const implicitBrowserFiltered = implicitBrowser.filter((m) => !isAbsoluteUrl(m));
143+
const implicitServerFiltered = implicitServer.filter(
144+
(m) => !isBuiltin(m) && !isAbsoluteUrl(m) && !m.endsWith('.json'),
145+
);
146+
const implicitBrowserFiltered = implicitBrowser.filter(
147+
(m) => !isAbsoluteUrl(m) && !m.endsWith('.json'),
148+
);
145149
const explicitBrowserFiltered = explicitPackagesOnly
146150
? explicit.filter((m) => !isAbsoluteUrl(m))
147151
: explicit;

0 commit comments

Comments
 (0)