diff --git a/packages/angular_devkit/build_angular/src/browser/index.ts b/packages/angular_devkit/build_angular/src/browser/index.ts index 84047467c314..b5d75281ee68 100644 --- a/packages/angular_devkit/build_angular/src/browser/index.ts +++ b/packages/angular_devkit/build_angular/src/browser/index.ts @@ -245,7 +245,7 @@ export function buildWebpackBrowser( return writeIndexHtml({ host, - outputPath: join(root, options.outputPath), + outputPath: resolve(root, normalize(options.outputPath)), indexPath: join(root, options.index), files, noModuleFiles, diff --git a/packages/angular_devkit/build_angular/test/browser/output-path_spec_large.ts b/packages/angular_devkit/build_angular/test/browser/output-path_spec_large.ts index 8d55a3146cd5..53f819eae4b5 100644 --- a/packages/angular_devkit/build_angular/test/browser/output-path_spec_large.ts +++ b/packages/angular_devkit/build_angular/test/browser/output-path_spec_large.ts @@ -7,8 +7,8 @@ */ import { Architect } from '@angular-devkit/architect'; -import { join, virtualFs } from '@angular-devkit/core'; -import { createArchitect, host } from '../utils'; +import { getSystemPath, join, virtualFs } from '@angular-devkit/core'; +import { browserBuild, createArchitect, host } from '../utils'; describe('Browser Builder output path', () => { @@ -48,4 +48,13 @@ describe('Browser Builder output path', () => { } catch {} await run.stop(); }); + + it('works with absolute outputPath', async () => { + const overrides = { + outputPath: getSystemPath(join(host.root(), 'dist')), + }; + const { files } = await browserBuild(architect, host, target, overrides); + expect('main.js' in files).toBe(true); + expect('index.html' in files).toBe(true); + }); });