diff --git a/.gitignore b/.gitignore index 8ad66d40..9d3ff0d7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ /.idea/ +/lib-es5/ /node_modules/ /*.log +/.DS_Store diff --git a/README.md b/README.md index dd69daf4..add50133 100644 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ Options -g, --global Look at global modules. -s, --skip-unused Skip check for unused packages. -p, --production Skip devDependencies. - -d, --dev-only Look at devDependencies only (skip dependencies). + -d, --dev-only Look at devDependencies only (skip dependencies and peerDependencies). -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. --no-color Force or disable color output. @@ -120,13 +120,13 @@ This is enabled by default when using `global` or `update`. #### `-p, --production` -By default `npm-check` will look at packages listed as `dependencies` and `devDependencies`. +By default `npm-check` will look at packages listed as `dependencies`, `peerDependencies` and `devDependencies`. This option will let it ignore outdated and unused checks for packages listed as `devDependencies`. #### `-d, --dev-only` -Ignore `dependencies` and only check `devDependencies`. +Ignore `dependencies` and `peerDependencies` and only check `devDependencies`. This option will let it ignore outdated and unused checks for packages listed as `dependencies`. @@ -140,7 +140,7 @@ Ignore dependencies that match specified glob. Install packages using `--save-exact`, meaning exact versions will be saved in package.json. -Applies to both `dependencies` and `devDependencies`. +Applies to `dependencies`, `peerDependencies` and `devDependencies`. #### `--color, --no-color` @@ -194,7 +194,7 @@ npmCheck(options) ### `devOnly` -* Ignore `dependencies` and only check `devDependencies`. +* Ignore `dependencies` and `peerDependencies` and only check `devDependencies`. * default is `false` #### `cwd` diff --git a/lib/in/create-package-summary.js b/lib/in/create-package-summary.js index 37266df4..8e12c55c 100644 --- a/lib/in/create-package-summary.js +++ b/lib/in/create-package-summary.js @@ -24,6 +24,7 @@ function createPackageSummary(moduleName, currentState) { // Ignore packages that are using github or file urls const packageJsonVersion = cwdPackageJson.dependencies[moduleName] || + cwdPackageJson.peerDependencies[moduleName] || cwdPackageJson.devDependencies[moduleName] || currentState.get('globalPackages')[moduleName]; diff --git a/lib/in/get-unused-packages.js b/lib/in/get-unused-packages.js index 745c8fd7..e84e456d 100644 --- a/lib/in/get-unused-packages.js +++ b/lib/in/get-unused-packages.js @@ -49,14 +49,16 @@ function checkUnused(currentState) { depcheck(currentState.get('cwd'), depCheckOptions, resolve); }).then(depCheckResults => { spinner.stop(); - const unusedDependencies = [].concat(depCheckResults.dependencies, depCheckResults.devDependencies); + const unusedDependencies = + [].concat(depCheckResults.dependencies, depCheckResults.peerDependencies, depCheckResults.devDependencies); currentState.set('unusedDependencies', unusedDependencies); const cwdPackageJson = currentState.get('cwdPackageJson'); // currently missing will return devDependencies that aren't really missing const missingFromPackageJson = _.omit(depCheckResults.missing || {}, - Object.keys(cwdPackageJson.dependencies), Object.keys(cwdPackageJson.devDependencies)); + Object.keys(cwdPackageJson.dependencies), Object.keys(cwdPackageJson.peerDependencies), + Object.keys(cwdPackageJson.devDependencies)); currentState.set('missingFromPackageJson', missingFromPackageJson); return currentState; }); diff --git a/lib/in/index.js b/lib/in/index.js index 1193ae1b..07078701 100644 --- a/lib/in/index.js +++ b/lib/in/index.js @@ -21,14 +21,14 @@ module.exports = function (currentState) { } if (currentState.get('ignoreDev')) { - return pkg.dependencies; + return merge(pkg.dependencies, pkg.peerDependencies); } if (currentState.get('devOnly')) { return pkg.devDependencies; } - return merge(pkg.dependencies, pkg.devDependencies); + return merge(pkg.dependencies, pkg.peerDependencies, pkg.devDependencies); } const allDependencies = dependencies(cwdPackageJson); diff --git a/lib/in/read-package-json.js b/lib/in/read-package-json.js index b61df5b6..b28507ad 100644 --- a/lib/in/read-package-json.js +++ b/lib/in/read-package-json.js @@ -14,7 +14,7 @@ function readPackageJson(filename) { error = new Error(`A package.json was found at ${filename}, but it is not valid.`); } } - return merge(pkg, {devDependencies: {}, dependencies: {}, error: error}); + return merge(pkg, {devDependencies: {}, peerDependencies: {}, dependencies: {}, error: error}); } module.exports = readPackageJson; diff --git a/lib/state/state.js b/lib/state/state.js index 9213cb47..ebc252b0 100644 --- a/lib/state/state.js +++ b/lib/state/state.js @@ -21,7 +21,7 @@ const defaultOptions = { ignore: [], globalPackages: {}, - cwdPackageJson: {devDependencies: {}, dependencies: {}}, + cwdPackageJson: {devDependencies: {}, dependencies: {}, peerDependencies: {}}, packages: false, unusedDependencies: false, diff --git a/package.json b/package.json index bd37ad32..b95f6edf 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "npm-check", - "version": "5.4.0", + "version": "5.5.0", "description": "Check for outdated, incorrect, and unused dependencies.", "main": "lib", "engines": { @@ -50,7 +50,8 @@ "updating", "updater", "installer", - "devDependencies" + "devDependencies", + "peerDependencies" ], "author": { "name": "Dylan Greene", diff --git a/templates/readme/api.md b/templates/readme/api.md index bad56cb7..060de20a 100644 --- a/templates/readme/api.md +++ b/templates/readme/api.md @@ -33,7 +33,7 @@ npmCheck(options) ### `devOnly` -* Ignore `dependencies` and only check `devDependencies`. +* Ignore `dependencies` and `peerDependencies` and only check `devDependencies`. * default is `false` ### `cwd` diff --git a/templates/readme/cli.md b/templates/readme/cli.md index 908b684b..b1239123 100644 --- a/templates/readme/cli.md +++ b/templates/readme/cli.md @@ -92,7 +92,7 @@ This is enabled by default when using `global` or `update`. ### `-p, --production` -By default `npm-check` will look at packages listed as `dependencies` and `devDependencies`. +By default `npm-check` will look at packages listed as `dependencies`, `peerDependencies` and `devDependencies`. This option will let it ignore outdated and unused checks for packages listed as `devDependencies`. @@ -106,7 +106,7 @@ Ignore dependencies that match specified glob. Install packages using `--save-exact`, meaning exact versions will be saved in package.json. -Applies to both `dependencies` and `devDependencies`. +Applies to `dependencies`, `peerDependencies` and `devDependencies`. ### `--color, --no-color`