Skip to content

Commit d585f99

Browse files
alan-agius4vikerman
authored andcommitted
fix(@schematics/angular): blank root leads to wrong tsconfig.lib.prod.json path
Closes: angular#16444
1 parent a5a8cc5 commit d585f99

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

Diff for: packages/schematics/angular/migrations/update-9/ivy-libraries.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
* Use of this source code is governed by an MIT-style license that can be
66
* found in the LICENSE file at https://angular.io/license
77
*/
8+
9+
import { join, normalize } from '@angular-devkit/core';
810
import { Rule, Tree } from '@angular-devkit/schematics';
911
import { getWorkspacePath } from '../../utility/config';
1012
import {
@@ -36,7 +38,7 @@ export function updateLibraries(): Rule {
3638
}
3739

3840
const configurations = findPropertyInAstObject(target, 'configurations');
39-
const tsConfig = `${projectRoot.value}/tsconfig.lib.prod.json`;
41+
const tsConfig = join(normalize(projectRoot.value), 'tsconfig.lib.prod.json');
4042

4143
if (!configurations || configurations.kind !== 'object') {
4244
// Configurations doesn't exist.

Diff for: packages/schematics/angular/migrations/update-9/ivy-libraries_spec.ts

+14
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,20 @@ describe('Migration to version 9', () => {
6464
tree.delete(libProdTsConfig);
6565
});
6666

67+
it(`should add 'tsConfig' option with correct path when 'root' is an empty string`, async () => {
68+
let config = JSON.parse(tree.readContent(workspacePath));
69+
const projectConfig = config.projects['migration-lib'];
70+
projectConfig.architect.build.configurations = undefined;
71+
projectConfig.root = '';
72+
tree.overwrite(workspacePath, JSON.stringify(config, undefined, 2));
73+
74+
const libProdTsConfigPath = 'tsconfig.lib.prod.json';
75+
const tree2 = await schematicRunner.runSchematicAsync('workspace-version-9', {}, tree.branch()).toPromise();
76+
config = getWorkspaceTargets(tree2).build;
77+
expect(config.configurations.production.tsConfig).toEqual(libProdTsConfigPath);
78+
expect(tree2.exists(libProdTsConfigPath)).toBeTruthy();
79+
});
80+
6781
it(`should add 'tsConfig' option in production when configurations doesn't exists`, async () => {
6882
let config = getWorkspaceTargets(tree);
6983
config.build.configurations = undefined;

0 commit comments

Comments
 (0)