This commit is contained in:
parent
b52b649fcb
commit
4f98e37fb3
@ -82,6 +82,7 @@
|
|||||||
"fs-extra": "^10.1.0",
|
"fs-extra": "^10.1.0",
|
||||||
"glob": "7.1.4",
|
"glob": "7.1.4",
|
||||||
"ignore": "^5.0.4",
|
"ignore": "^5.0.4",
|
||||||
|
"jsonc-parser": "3.2.0",
|
||||||
"minimatch": "3.0.5",
|
"minimatch": "3.0.5",
|
||||||
"npm-run-path": "^4.0.1",
|
"npm-run-path": "^4.0.1",
|
||||||
"open": "^8.4.0",
|
"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 () => {
|
it('should only update the project ref paths in the tsconfig file when --updateImportPath=false', async () => {
|
||||||
await libraryGenerator(tree, {
|
await libraryGenerator(tree, {
|
||||||
name: 'my-source',
|
name: 'my-source',
|
||||||
|
|||||||
@ -17,6 +17,7 @@ import { findNodes } from 'nx/src/utils/typescript';
|
|||||||
import { NormalizedSchema } from '../schema';
|
import { NormalizedSchema } from '../schema';
|
||||||
import { normalizeSlashes } from './utils';
|
import { normalizeSlashes } from './utils';
|
||||||
import { relative } from 'path';
|
import { relative } from 'path';
|
||||||
|
import { parse } from 'jsonc-parser';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates all the imports in the workspace and modifies the tsconfig appropriately.
|
* Updates all the imports in the workspace and modifies the tsconfig appropriately.
|
||||||
@ -42,7 +43,15 @@ export function updateImports(
|
|||||||
let tsConfig: any;
|
let tsConfig: any;
|
||||||
let fromPath: string;
|
let fromPath: string;
|
||||||
if (tree.exists(tsConfigPath)) {
|
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) =>
|
fromPath = Object.keys(tsConfig.compilerOptions.paths).find((path) =>
|
||||||
tsConfig.compilerOptions.paths[path].some((x) =>
|
tsConfig.compilerOptions.paths[path].some((x) =>
|
||||||
x.startsWith(project.sourceRoot)
|
x.startsWith(project.sourceRoot)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user