diff --git a/packages/angular_devkit/build_angular/src/builders/browser-esbuild/compiler-plugin.ts b/packages/angular_devkit/build_angular/src/builders/browser-esbuild/compiler-plugin.ts index 85220ef735c1..99db5d2bd6b0 100644 --- a/packages/angular_devkit/build_angular/src/builders/browser-esbuild/compiler-plugin.ts +++ b/packages/angular_devkit/build_angular/src/builders/browser-esbuild/compiler-plugin.ts @@ -116,7 +116,12 @@ function convertTypeScriptDiagnostic( // This is a non-watch version of the compiler code from `@ngtools/webpack` augmented for esbuild // eslint-disable-next-line max-lines-per-function export function createCompilerPlugin( - pluginOptions: { sourcemap: boolean; tsconfig: string; advancedOptimizations?: boolean }, + pluginOptions: { + sourcemap: boolean; + tsconfig: string; + advancedOptimizations?: boolean; + thirdPartySourcemaps?: boolean; + }, styleOptions: BundleStylesheetOptions, ): Plugin { return { @@ -318,10 +323,14 @@ export function createCompilerPlugin( }; } + const useInputSourcemap = + pluginOptions.sourcemap && + (!!pluginOptions.thirdPartySourcemaps || !/[\\/]node_modules[\\/]/.test(args.path)); + const data = typescriptResult.content ?? ''; const babelResult = await transformAsync(data, { filename: args.path, - inputSourceMap: (pluginOptions.sourcemap ? undefined : false) as undefined, + inputSourceMap: (useInputSourcemap ? undefined : false) as undefined, sourceMaps: pluginOptions.sourcemap ? 'inline' : false, compact: false, configFile: false, @@ -355,10 +364,14 @@ export function createCompilerPlugin( ) ).createEs2015LinkerPlugin; + const useInputSourcemap = + pluginOptions.sourcemap && + (!!pluginOptions.thirdPartySourcemaps || !/[\\/]node_modules[\\/]/.test(args.path)); + const data = await fs.readFile(args.path, 'utf-8'); const result = await transformAsync(data, { filename: args.path, - inputSourceMap: (pluginOptions.sourcemap ? undefined : false) as undefined, + inputSourceMap: (useInputSourcemap ? undefined : false) as undefined, sourceMaps: pluginOptions.sourcemap ? 'inline' : false, compact: false, configFile: false, diff --git a/packages/angular_devkit/build_angular/src/builders/browser-esbuild/index.ts b/packages/angular_devkit/build_angular/src/builders/browser-esbuild/index.ts index b83aff440552..3e49db280625 100644 --- a/packages/angular_devkit/build_angular/src/builders/browser-esbuild/index.ts +++ b/packages/angular_devkit/build_angular/src/builders/browser-esbuild/index.ts @@ -323,6 +323,7 @@ async function bundleCode( // JS/TS options { sourcemap: !!sourcemapOptions.scripts, + thirdPartySourcemaps: sourcemapOptions.vendor, tsconfig, advancedOptimizations: options.buildOptimizer, },