fix(devkit): fix issue replacing package dependencies in malformed pa… (#16823)
This commit is contained in:
parent
95594d21f7
commit
514e4fa0ab
@ -165,6 +165,14 @@ describe('replaceNrwlPackageWithNxPackage', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it('should handle broken package.json files', () => {
|
||||
tree.write('package.json', '{ broken: "json ');
|
||||
|
||||
expect(() =>
|
||||
replaceNrwlPackageWithNxPackage(tree, 'old-package', 'new-package')
|
||||
).not.toThrow();
|
||||
});
|
||||
|
||||
it('should replace any mentions in files', () => {
|
||||
expect(tree.read('README.txt').toString()).toContain('new-package');
|
||||
expect(tree.read('README.txt').toString()).not.toContain('old-package');
|
||||
|
||||
@ -38,20 +38,26 @@ function replacePackageInDependencies(
|
||||
return;
|
||||
}
|
||||
|
||||
updateJson<PackageJson>(tree, path, (packageJson) => {
|
||||
for (const deps of [
|
||||
packageJson.dependencies ?? {},
|
||||
packageJson.devDependencies ?? {},
|
||||
packageJson.peerDependencies ?? {},
|
||||
packageJson.optionalDependencies ?? {},
|
||||
]) {
|
||||
if (oldPackageName in deps) {
|
||||
deps[newPackageName] = deps[oldPackageName];
|
||||
delete deps[oldPackageName];
|
||||
try {
|
||||
updateJson<PackageJson>(tree, path, (packageJson) => {
|
||||
for (const deps of [
|
||||
packageJson.dependencies ?? {},
|
||||
packageJson.devDependencies ?? {},
|
||||
packageJson.peerDependencies ?? {},
|
||||
packageJson.optionalDependencies ?? {},
|
||||
]) {
|
||||
if (oldPackageName in deps) {
|
||||
deps[newPackageName] = deps[oldPackageName];
|
||||
delete deps[oldPackageName];
|
||||
}
|
||||
}
|
||||
}
|
||||
return packageJson;
|
||||
});
|
||||
return packageJson;
|
||||
});
|
||||
} catch (e) {
|
||||
console.warn(
|
||||
`Could not replace ${oldPackageName} with ${newPackageName} in ${path}.`
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -218,10 +218,12 @@ function findCreatedProjectFiles(tree: Tree) {
|
||||
if (fileName === 'project.json') {
|
||||
createdProjectFiles.push(change.path);
|
||||
} else if (fileName === 'package.json') {
|
||||
const contents: PackageJson = JSON.parse(change.content.toString());
|
||||
if (contents.nx) {
|
||||
createdProjectFiles.push(change.path);
|
||||
}
|
||||
try {
|
||||
const contents: PackageJson = JSON.parse(change.content.toString());
|
||||
if (contents.nx) {
|
||||
createdProjectFiles.push(change.path);
|
||||
}
|
||||
} catch {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user