From 693544f07e361d08b0364e24704f85f866b5b200 Mon Sep 17 00:00:00 2001 From: Bram Borggreve Date: Fri, 15 May 2020 16:06:12 -0500 Subject: [PATCH] fix(core): make sure remove schematic respects gitignore --- .../remove/lib/check-dependencies.ts | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/packages/workspace/src/schematics/remove/lib/check-dependencies.ts b/packages/workspace/src/schematics/remove/lib/check-dependencies.ts index 81db0d66e8..cef2708b50 100644 --- a/packages/workspace/src/schematics/remove/lib/check-dependencies.ts +++ b/packages/workspace/src/schematics/remove/lib/check-dependencies.ts @@ -5,6 +5,7 @@ import { readWorkspace, } from '@nrwl/workspace/src/utils/ast-utils'; import { getWorkspacePath } from '@nrwl/workspace/src/utils/cli-config-utils'; +import ignore from 'ignore'; import * as path from 'path'; import { createProjectGraph, @@ -25,18 +26,28 @@ export function checkDependencies(schema: Schema): Rule { if (schema.forceRemove) { return (tree: Tree) => tree; } + let ig = ignore(); return (tree: Tree): Tree => { + if (tree.exists('.gitignore')) { + ig = ig.add(tree.read('.gitignore').toString()); + } const files: FileData[] = []; const mtime = Date.now(); //can't get mtime data from the tree :( const workspaceDir = path.dirname(getWorkspacePath(tree)); - tree.visit((file) => { - files.push({ - file: path.relative(workspaceDir, file), - ext: path.extname(file), - mtime, + + for (const dir of tree.getDir('/').subdirs) { + if (ig.ignores(dir)) { + return; + } + tree.getDir(dir).visit((file) => { + files.push({ + file: path.relative(workspaceDir, file), + ext: path.extname(file), + mtime, + }); }); - }); + } const graph: ProjectGraph = createProjectGraph( readWorkspace(tree),