From 84b40c8b858f272f393ea69fe3799267d12b218a Mon Sep 17 00:00:00 2001 From: Craigory V Coppola Date: Thu, 15 Jul 2021 09:36:48 -0500 Subject: [PATCH] fix(misc): @nrwl/workspace:rm generator should work with standalone configs (#6348) * fix(devkit): removeProjectConfiguration should remove path for project.json from workspace.json When using standalone config files, removing a project's config should also remove its entry in the workspace file. * fix(misc): @nrwl/workspace:rm should work with standalone config files When using standalone config files, removing a project's config should also remove its entry in the workspace file. --- .../devkit/src/generators/project-configuration.spec.ts | 3 ++- packages/devkit/src/generators/project-configuration.ts | 6 ++---- packages/workspace/src/generators/remove/remove.ts | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/packages/devkit/src/generators/project-configuration.spec.ts b/packages/devkit/src/generators/project-configuration.spec.ts index 71cd173f72..ffdf2e4983 100644 --- a/packages/devkit/src/generators/project-configuration.spec.ts +++ b/packages/devkit/src/generators/project-configuration.spec.ts @@ -119,10 +119,11 @@ describe('project configuration', () => { ); }); - it('should remove project.json file when removing projct configuration', () => { + it('should remove project.json file when removing project configuration', () => { addProjectConfiguration(tree, 'test', baseTestProjectConfig, true); removeProjectConfiguration(tree, 'test'); + expect(readJson(tree, 'workspace.json').projects.test).toBeUndefined(); expect(tree.exists('test/project.json')).toBeFalsy(); }); diff --git a/packages/devkit/src/generators/project-configuration.ts b/packages/devkit/src/generators/project-configuration.ts index 0eba6edde2..4a1787a647 100644 --- a/packages/devkit/src/generators/project-configuration.ts +++ b/packages/devkit/src/generators/project-configuration.ts @@ -265,13 +265,12 @@ function addProjectToWorkspaceJson( if (configFile) { if (mode === 'delete') { host.delete(configFile); + delete workspaceJson.projects[projectName]; } else { writeJson(host, configFile, project); } - if (mode === 'create') { workspaceJson.projects[projectName] = project.root; - writeJson(host, path, workspaceJson); } } else { let workspaceConfiguration: ProjectConfiguration; @@ -279,10 +278,9 @@ function addProjectToWorkspaceJson( const { tags, implicitDependencies, ...c } = project; workspaceConfiguration = c; } - workspaceJson.projects[projectName] = workspaceConfiguration; - writeJson(host, path, workspaceJson); } + writeJson(host, path, workspaceJson); } function addProjectToNxJson( diff --git a/packages/workspace/src/generators/remove/remove.ts b/packages/workspace/src/generators/remove/remove.ts index e1c8fcd5ab..6b682ad68e 100644 --- a/packages/workspace/src/generators/remove/remove.ts +++ b/packages/workspace/src/generators/remove/remove.ts @@ -18,8 +18,8 @@ export async function removeGenerator(tree: Tree, schema: Schema) { await checkDependencies(tree, schema); checkTargets(tree, schema, project); updateJestConfig(tree, schema, project); - removeProject(tree, project); removeProjectConfig(tree, schema); + removeProject(tree, project); updateTsconfig(tree, schema, project); if (!schema.skipFormat) { await formatFiles(tree);