This commit is contained in:
parent
b52b649fcb
commit
4f98e37fb3
@ -82,6 +82,7 @@
|
||||
"fs-extra": "^10.1.0",
|
||||
"glob": "7.1.4",
|
||||
"ignore": "^5.0.4",
|
||||
"jsonc-parser": "3.2.0",
|
||||
"minimatch": "3.0.5",
|
||||
"npm-run-path": "^4.0.1",
|
||||
"open": "^8.4.0",
|
||||
|
||||
@ -340,6 +340,30 @@ export MyExtendedClass extends MyClass {};`
|
||||
});
|
||||
});
|
||||
|
||||
it('should update project ref in the root tsconfig.json when there is a comment', async () => {
|
||||
tree.rename('tsconfig.base.json', 'tsconfig.json');
|
||||
tree.write(
|
||||
'tsconfig.json',
|
||||
`// A comment\n${tree.read('tsconfig.json', 'utf-8')}`
|
||||
);
|
||||
await libraryGenerator(tree, {
|
||||
name: 'my-source',
|
||||
standaloneConfig: false,
|
||||
});
|
||||
const projectConfig = readProjectConfiguration(tree, 'my-source');
|
||||
|
||||
updateImports(
|
||||
tree,
|
||||
normalizeSchema(tree, schema, projectConfig),
|
||||
projectConfig
|
||||
);
|
||||
|
||||
const tsConfig = readJson(tree, '/tsconfig.json');
|
||||
expect(tsConfig.compilerOptions.paths).toEqual({
|
||||
'@proj/my-destination': ['libs/my-destination/src/index.ts'],
|
||||
});
|
||||
});
|
||||
|
||||
it('should only update the project ref paths in the tsconfig file when --updateImportPath=false', async () => {
|
||||
await libraryGenerator(tree, {
|
||||
name: 'my-source',
|
||||
|
||||
@ -17,6 +17,7 @@ import { findNodes } from 'nx/src/utils/typescript';
|
||||
import { NormalizedSchema } from '../schema';
|
||||
import { normalizeSlashes } from './utils';
|
||||
import { relative } from 'path';
|
||||
import { parse } from 'jsonc-parser';
|
||||
|
||||
/**
|
||||
* Updates all the imports in the workspace and modifies the tsconfig appropriately.
|
||||
@ -42,7 +43,15 @@ export function updateImports(
|
||||
let tsConfig: any;
|
||||
let fromPath: string;
|
||||
if (tree.exists(tsConfigPath)) {
|
||||
tsConfig = JSON.parse(tree.read(tsConfigPath).toString('utf-8'));
|
||||
const tsConfigRawContents = tree.read(tsConfigPath).toString('utf-8');
|
||||
tsConfig = (() => {
|
||||
try {
|
||||
return JSON.parse(tsConfigRawContents);
|
||||
} catch {
|
||||
return parse(tsConfigRawContents);
|
||||
}
|
||||
})();
|
||||
|
||||
fromPath = Object.keys(tsConfig.compilerOptions.paths).find((path) =>
|
||||
tsConfig.compilerOptions.paths[path].some((x) =>
|
||||
x.startsWith(project.sourceRoot)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user