From 5df66f6d940035032f9691f4ea7671e2406dc5d3 Mon Sep 17 00:00:00 2001 From: Alan Agius Date: Mon, 2 Sep 2019 12:07:06 +0200 Subject: [PATCH] fix(@angular-devkit/build-angular): several issues with optimization and bundleDependencies in universal Fixes #15498 --- .../models/webpack-configs/common.ts | 1 + .../e2e/tests/build/platform-server.ts | 21 ++++++++++++++----- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/packages/angular_devkit/build_angular/src/angular-cli-files/models/webpack-configs/common.ts b/packages/angular_devkit/build_angular/src/angular-cli-files/models/webpack-configs/common.ts index a0d251e75727..693ea1fdc609 100644 --- a/packages/angular_devkit/build_angular/src/angular-cli-files/models/webpack-configs/common.ts +++ b/packages/angular_devkit/build_angular/src/angular-cli-files/models/webpack-configs/common.ts @@ -352,6 +352,7 @@ export function getCommonConfig(wco: WebpackConfigOptions): Configuration { buildOptions.platform == 'server' ? { global_defs: angularGlobalDefinitions, + keep_fnames: true, } : { pure_getters: buildOptions.buildOptimizer, diff --git a/tests/legacy-cli/e2e/tests/build/platform-server.ts b/tests/legacy-cli/e2e/tests/build/platform-server.ts index dc1d2b07b7a4..423deebefaa3 100644 --- a/tests/legacy-cli/e2e/tests/build/platform-server.ts +++ b/tests/legacy-cli/e2e/tests/build/platform-server.ts @@ -1,6 +1,6 @@ import { normalize } from 'path'; import { getGlobalVariable } from '../../utils/env'; -import { expectFileToMatch, writeFile } from '../../utils/fs'; +import { expectFileToMatch, writeFile, appendToFile } from '../../utils/fs'; import { exec, ng, silentNpm } from '../../utils/process'; import { updateJsonFile } from '../../utils/project'; import { readNgVersion } from '../../utils/version'; @@ -21,15 +21,16 @@ export default async function () { }); await silentNpm('install'); - await ng('run', 'test-project:server:production'); - await expectFileToMatch('dist/server/main.js', /exports.*AppServerModuleNgFactory/); + await appendToFile( + 'src/main.server.ts', + `export { renderModuleFactory } from '@angular/platform-server';`, + ); await writeFile( './index.js', ` require('zone.js/dist/zone-node'); const fs = require('fs'); - const { AppServerModuleNgFactory } = require('./dist/server/main'); - const { renderModuleFactory } = require('@angular/platform-server'); + const { AppServerModuleNgFactory, renderModuleFactory } = require('./dist/server/main'); renderModuleFactory(AppServerModuleNgFactory, { url: '/', @@ -40,6 +41,16 @@ export default async function () { `, ); + await ng('run', 'test-project:server:production'); + await expectFileToMatch('dist/server/main.js', /exports.*AppServerModuleNgFactory/); + await exec(normalize('node'), 'index.js'); + await expectFileToMatch( + 'dist/server/index.html', + /Here are some links to help you get started:<\/p>/, + ); + + // works with optimization and bundleDependencies enabled + await ng('run', 'test-project:server:production', '--optimization', '--bundleDependencies', 'all'); await exec(normalize('node'), 'index.js'); await expectFileToMatch( 'dist/server/index.html',