Introduction to npm-check-updates
The npm-check-updates
(ncu) tool is a must-have for developers who want to keep their npm dependencies up-to-date. It upgrades your package.json dependencies to the latest versions, even those that satisfy the specified version ranges. In this guide, we will explore the powerful functionality of ncu
with dozens of useful API examples.
Installation
npm install -g npm-check-updates
Basic Usage
To see which of your dependencies are out-of-date:
ncu
To upgrade your package.json with the latest versions:
ncu -u
API Examples
Here are some of the key APIs you can use with npm-check-updates
.
Checking Global Packages
ncu -g
Filtering Packages
Run ncu on specific packages only:
ncu react
Ignoring Packages
Ignore specific packages when checking for updates:
ncu -x lodash,react
Target Newest Versions
Upgrade to the highest versions, even those beyond the latest to include pre-releases:
ncu --target newest
Interactive Mode
Use the interactive mode to select which updates to apply:
ncu -i
Using Custom Package File
Check upgrades for a package file other than package.json:
ncu --packageFile ./my-project/package.json
JSON Output
Output the upgrade information in JSON format:
ncu -j
Creating a More Advanced Example
Here is an example of a Node.js application with integrated npm-check-updates
for automatic dependency management:
const { exec } = require('child_process');
const updateDependencies = () => {
console.log('Checking for updates...');
exec('ncu -u', (err, stdout, stderr) => {
if (err) {
console.error(`Error: ${err}`);
return;
}
console.log(`Dependency updates:\n${stdout}`);
if(stderr) {
console.error(`Stderr: ${stderr}`);
} else {
exec('npm install', (err, stdout, stderr) => {
if (err) {
console.error(`Error: ${err}`);
return;
}
console.log(`NPM Install Output:\n${stdout}`);
if (stderr) {
console.error(`Stderr: ${stderr}`);
}
});
}
});
};
updateDependencies();
This simple script checks for updates, applies them to package.json
, and installs the updated dependencies.
Hash: cad7080ec98bb8edfd1ccde25523536bb833bfaf0e2818a560193f6f77375684