diff --git a/packages/angular_devkit/build_angular/src/builders/app-shell/index.ts b/packages/angular_devkit/build_angular/src/builders/app-shell/index.ts index 6a70ff1a60d2..759433ac7d76 100644 --- a/packages/angular_devkit/build_angular/src/builders/app-shell/index.ts +++ b/packages/angular_devkit/build_angular/src/builders/app-shell/index.ts @@ -86,10 +86,11 @@ async function _renderUniversal( localeDirectory, ); + const route = options.route; let html: string = await renderWorker.run({ serverBundlePath, document: indexHtml, - url: options.route, + url: route?.[0] === '/' ? route : '/' + route, }); // Overwrite the client index file. diff --git a/packages/angular_devkit/build_angular/src/tools/webpack/utils/helpers.ts b/packages/angular_devkit/build_angular/src/tools/webpack/utils/helpers.ts index 91579103adab..e359597ab45e 100644 --- a/packages/angular_devkit/build_angular/src/tools/webpack/utils/helpers.ts +++ b/packages/angular_devkit/build_angular/src/tools/webpack/utils/helpers.ts @@ -8,6 +8,7 @@ import type { ObjectPattern } from 'copy-webpack-plugin'; import { createHash } from 'node:crypto'; +import { createRequire } from 'node:module'; import * as path from 'node:path'; import { globSync } from 'tinyglobby'; import type { Configuration, WebpackOptionsNormalized } from 'webpack'; @@ -314,7 +315,8 @@ export function getStatsOptions(verbose = false): WebpackStatsOptions { */ export function isPackageInstalled(root: string, name: string): boolean { try { - require.resolve(name, { paths: [root] }); + const resolve = createRequire(root + '/').resolve; + resolve(name); return true; } catch {