Node.js module that tells you when your package NPM dependencies are out of date.
Install Node.js.
Install david:
cd /your/project/directory
npm install davidUse:
var david = require('david');
// Your package.json
var manifest = {
name: 'xxx',
dependencies: {
'aaa': '~0.0.0',
'bbb': '~0.0.0'
},
devDependencies: {
'yyy': '~0.0.0',
'zzz': '~0.0.0'
}
};
david.getDependencies(manifest, function (er, deps) {
console.log('latest dependencies information for', manifest.name);
listDependencies(deps);
});
david.getDependencies(manifest, { dev: true }, function (er, deps) {
console.log('latest devDependencies information for', manifest.name);
listDependencies(deps);
});
david.getUpdatedDependencies(manifest, function (er, deps) {
console.log('dependencies with newer versions for', manifest.name);
listDependencies(deps);
});
david.getUpdatedDependencies(manifest, { dev: true }, function (er, deps) {
console.log('devDependencies with newer versions for', manifest.name);
listDependencies(deps);
});
david.getUpdatedDependencies(manifest, { stable: true }, function (er, deps) {
console.log('dependencies with newer STABLE versions for', manifest.name);
listDependencies(deps);
});
david.getUpdatedDependencies(manifest, { dev: true, stable: true }, function (er, deps) {
console.log('devDependencies with newer STABLE versions for', manifest.name);
listDependencies(deps);
});
function listDependencies(deps) {
Object.keys(deps, function(depName) {
var required = deps[depName].required || '*';
var stable = deps[depName].stable || 'None';
var latest = deps[depName].latest;
console.log('%s Required: %s Stable: %s Latest: %s', depName, required, stable, latest);
});
}Both getDependencies and getUpdatedDependencies return an object result,
whose keys are package names. The values are objects which contain the following properties:
required- The version required according to the manifeststable- The latest stable version availablelatest- The latest version available (including build and patch versions)
If you install David globally with npm install -g david, you can run david
in your project directory to see which dependencies are out of date.
You can also run david --global to see your outdated global dependencies.
To update all your project dependencies to the latest stable versions,
and save to your package.json, run:
david updateYou can also update global dependencies to latest versions:
david update --globalTo update all your project dependencies to the latest versions
(including unstable versions), pass the --unstable flag:
david update --unstable- 2013-10-27 v2.4.0 Removes
semverext.js. Thegtrfunction is now available insemver - 2013-10-08 v2.3.0 Support update specific modules from CLI via
david update [module] - 2013-10-01 v2.2.0 Support for
optionalDependenciesandpeerDependencies - 2013-09-16 v2.1.0 Fixed issues with latest/stable version detection
- 2013-08-25 v2.0.0 Simplification refactor to remove caching and useless events. Code style changes, performance improvements.
- 2013-08-04 v1.9.0 CLI added
--unstableflag to view/update to latest unstable dependency versions - 2013-07-30 v1.8.0 CLI added
david updateto update dependencies to latest stable versions and save to your projectpackage.json - 2013-06-27 v1.7.0 Updated to use semver 2 module. Simplified code that determines if a version is greater than a range
- 2013-03-28 v1.6.0 Use
setImmediateinstead ofprocess.nextTick. David now requires Node.js 0.10.x - 2013-03-27 v1.5.0 CLI added
--globalflag to find outdated global dependencies - 2013-03-15 v1.4.0 Allow set the maximum number of dependencies that can be stored in the cache
- 2013-03-14 v1.3.0 Added CLI support
- 2013-03-05 v1.2.0 David can now get dependency information for
devDependencies - 2013-02-07 v1.1.0 Adds
onlyStableparam togetUpdatedDependenciesto filter by dependencies that are updated and stable - 2013-02-06 v1.0.0 Return latest stable version as well as latest version (including patch and build versions). API return values changed. Events changed.




