Skip to content

Fast checking of top level dependencies based on version numbers

License

Notifications You must be signed in to change notification settings

bahmutov/deps-ok

Repository files navigation

deps-ok

Fast checking of top level NPM and Bower dependencies based on version numbers.

NPM info

Build status dependencies devdependencies manpm semantic-release renovate-app badge

See grunt-deps-ok for integrating this task into grunt pipeline.

Install

Install as a global tool

npm install -g deps-ok

Install as a project's dependency

npm install --save-dev deps-ok

Use as a global tool

Checks modules until the first module without valid install. Prints first found error and exits with code 1 if one of the top level dependencies is missing or out of date.

// from the package's root folder execute
deps-ok

deps-ok --verbose
// prints declared and installed version numbers

deps-ok --filename path/to/package.json
// checks give package.json (not in this folder)

Checks both dependencies listed in your package.json and bower.json

If deps-ok finds a problem, then run npm install or bower install

Use as 3rd party module

You can use deps-ok from another module

npm install deps-ok --save
var depsOk = require('deps-ok');
var ok = depsOk(process.cwd(), false /* verbose */);

Use with gulp

If you prefer using gulp, you can quickly just add a task

gulp.task('deps-ok', function () {
  var gutil = require('gulp-util');
  var depsOk = require('deps-ok');
  var ok = depsOk(process.cwd(), false /* verbose */);
  if (!ok) {
    gulp.emit('error', new gutil.PluginError('deps-ok', 'Found outdated installs'));
  }
});
gulp.task('default', ['deps-ok', ...]);

Options

  • --allow-duplicate <name> allows same dependency to be declared in dev and peer dependencies (or other combinations). Useful if you are developing a plugin that requires the main tool (peer) but also uses the main tool for testing (dev).
$ deps-ok --allow-duplicate angular
$ deps-ok --allow-duplicate angular --allow-duplicate jquery
  • --verbose prints verbose console messages, but using DEBUG=deps-ok is a better method

  • --skip-version-check is used to load and check versions but skip actual physical file checks. Useful in end to end testing.

Notes

This check will reject packages without "version" property in the package.json file.

Debug

See debug messages by running module with DEBUG=deps-ok environment variable

Small print

Author: Gleb Bahmutov © 2013

License: MIT - do anything with the code, but don't blame me if it does not work.

Support: if you find any problems with this module, email / tweet / open issue on Github