diff --git a/lib/cli.js b/lib/cli.js index d7451190..8bcf658e 100755 --- a/lib/cli.js +++ b/lib/cli.js @@ -31,6 +31,7 @@ const cli = meow({ -i, --ignore Ignore dependencies based on succeeding glob. -E, --save-exact Save exact version (x.y.z) instead of caret (^x.y.z) in package.json. --specials List of depcheck specials to include in check for unused dependencies. + --ignore-dirs Ignore paths - directory names to ignore. --no-color Force or disable color output. --no-emoji Remove emoji support. No emoji in default in CI environments. --debug Debug output. Throw in a gist when creating issues on github. @@ -68,7 +69,8 @@ const cli = meow({ ], string: [ 'ignore', - 'specials' + 'specials', + 'ignore-dirs' ] }); @@ -85,7 +87,8 @@ const options = { installer: process.env.NPM_CHECK_INSTALLER || 'npm', debug: cli.flags.debug, spinner: cli.flags.spinner, - ignore: cli.flags.ignore + ignore: cli.flags.ignore, + ignoreDirs: cli.flags.ignoreDirs }; if (options.debug) { diff --git a/lib/in/get-unused-packages.js b/lib/in/get-unused-packages.js index 627123a1..a35790aa 100644 --- a/lib/in/get-unused-packages.js +++ b/lib/in/get-unused-packages.js @@ -24,6 +24,16 @@ function checkUnused(currentState) { const spinner = ora(`Checking for unused packages. --skip-unused if you don't want this.`); spinner.enabled = spinner.enabled && currentState.get('spinner'); spinner.start(); + const defaultIgnoreDirs = [ + 'sandbox', + 'dist', + 'generated', + '.generated', + 'build', + 'fixtures', + 'jspm_packages' + ]; + const ignoreDirs = defaultIgnoreDirs.concat(currentState.get('ignoreDirs')); return new Promise(resolve => { if (skipUnused(currentState)) { @@ -32,15 +42,7 @@ function checkUnused(currentState) { } const depCheckOptions = { - ignoreDirs: [ - 'sandbox', - 'dist', - 'generated', - '.generated', - 'build', - 'fixtures', - 'jspm_packages' - ], + ignoreDirs: ignoreDirs, ignoreMatches: [ 'gulp-*', 'grunt-*', diff --git a/lib/state/state.js b/lib/state/state.js index 94c5dc19..ce6d546a 100644 --- a/lib/state/state.js +++ b/lib/state/state.js @@ -20,6 +20,7 @@ const defaultOptions = { spinner: false, installer: 'npm', ignore: [], + ignoreDirs: [], globalPackages: {}, cwdPackageJson: {devDependencies: {}, dependencies: {}},