Releases: raineorshine/npm-check-updates
v17.0.0-1
This is the first prerelease in preparation for the next major v17. It mainly involves a node engines bump and lot of internal dependency upgrades, so if you notice any regressions, please let me know!
Run npx npm-check-updates@v17.0.0-1
to test.
There are a two more breaking/high-risk changes I intend to make for the v17 release, which I will also release as prerelease versions for testing.
Thanks for your help and enjoy! 🍰
Breaking
v16.14.0
v16.13.0
Feature
- Added
--install
option to control auto-install behavior.
Usage:
ncu --install [value]
Default: prompt
Control the auto-install behavior.
always | Runs your package manager's install command automatically after upgrading. |
never | Does not install and does not prompt. |
prompt | Shows a message after upgrading that recommends an install, but does not install. In interactive mode, prompts for install. (default) |
v16.10.0
Feature
- Added
filterResults
option to filter out upgrades based on a user provided function.
filterResults
runs after new versions are fetched, in contrast to filter
and filterVersion
, which run before. This allows you to filter out upgrades with filterResults
based on how the version has changed (e.g. a major version change).
Only available in .ncurc.js or when importing npm-check-updates as a module.
/** Filter out non-major version updates.
@param {string} packageName The name of the dependency.
@param {string} currentVersion Current version declaration (may be range).
@param {SemVer[]} currentVersionSemver Current version declaration in semantic versioning format (may be range).
@param {string} upgradedVersion Upgraded version.
@param {SemVer} upgradedVersionSemver Upgraded version in semantic versioning format.
@returns {boolean} Return true if the upgrade should be kept, otherwise it will be ignored.
*/
filterResults: (packageName, {currentVersion, currentVersionSemver, upgradedVersion, upgradedVersionSemver}) => {
const currentMajorVersion = currentVersionSemver?.[0]?.major
const upgradedMajorVersion = upgradedVersionSemver?.major
if (currentMajorVersion && upgradedMajorVersion) {
return currentMajorVersion < upgradedMajorVersion
}
return true
}
For the SemVer type definition, see: https://git.coolaj86.com/coolaj86/semver-utils.js#semverutils-parse-semverstring
Thanks to mslowiak for this enhancement!
v16.8.0
Feature
- Added
--format lines
$ ncu --format lines
@ava/typescript@^4.0.0
ava@^5.2.0
eslint@^8.36.0
lerna@^6.5.1
typescript@^5.0.2
This is particularly useful for upgrading global modules:
npm install -g $(ncu -g --format lines)
Thanks to @vanodevium for the PR!
v16.4.0
Feature
Added --cacheClear
option for—you guessed it—clearing the cache 🫥.
This brings the suite of cache-related options to:
--cache
: Cache versions to the cache file.--cacheClear
: Clear the default cache, or the cache file specified by --cacheFile.--cacheExpiration <min>
: Cache expiration in minutes (default: 10).--cacheFile <path>
: Filepath for the cache file (default: "~/.ncu-cache.json").
Thanks to @ly3xqhl8g9 whose code is gratefully more lucid than his username.
v16.3.0
Feature
- Added workspace support! 🚢
Upgrade all workspaces:
ncu --workspaces
ncu -ws
Upgrade a single workspace:
ncu --workspace a
ncu -w a
Upgrade more than one workspace:
ncu --workspace a --workspace b
ncu -w a -w b
Upgrade all workspaces AND the root project:
ncu --workspaces --root
Upgrade a single workspace AND the root project:
ncu --workspace a --root
Notes
- If
workspaces
or--workspace
is run in--interactive
mode, ncu will prompt tonpm install
once in the root project rather than separately in each workspace (#1182). - Running
--deep
will not trigger workspace support.
v16.0.0
Breaking
- Automatic detection of package data on stdin has been removed. This feature was deprecated in
v14.0.0
. Add--stdin
for old behavior. (#136) - Wild card filters now apply to scoped packages. Previously,
ncu -f '*vite*'
would not include@vitejs/plugin-react
. Now, filters will match any part of the package name, including the scope. Use a more specific glob or regex expression for old behavior. (#1168)
v15.0.0
Breaking
- node >= 14.14 is now required (#1145)
- Needed to upgrade
update-notifier
with has a moderate severity vulnerability
- Needed to upgrade
- yarn autodetect has been improved (#1148)
- This is a patch, though technically it is breaking. In the obscure case where
--packageManager
is not given, there is nopackage-lock.json
in the current folder, and there is ayarn.lock
in an ancestor directory, npm-check-updates will now use yarn. - More practically, if you needed to specify
--packageManager yarn
explicitly before, you may not have to now
- This is a patch, though technically it is breaking. In the obscure case where
v14.1.0
Features
Group
You can now group upgrades by risk level using --format group
:
Interactive Mode
Interactive mode was completely rewritten for a better user experience.
Inspired by npm-check.
Combine with --format group
for a truly luxe experience:
Static Registry
A new option --packageManager staticRegistry
allows upgrades to be recommended from a static JSON file. This can be used to power custom versioning infrastructure that is completely independent from the npm registry.
Thanks to agrouse who did a fine job on the PR.
Example:
$ ncu --packageManager staticRegistry --registry ./my-registry.json
my-registry.json:
{
"prettier": "2.7.0",
"typescript": "4.7.0"
}
The latest versions of prettier
and typescript
are set in the registry file. When ncu
is run, it will recommend upgrades from the static registry file without touching the npm registry:
$ ncu --packageManager staticRegistry --registry ./my-registry.json
Checking /Users/raine/projects/ncu-issues/14.1.0/package.json
[====================] 2/2 100%
prettier ^2.0.1 → ^2.7.0
typescript ^3.4.0 → ^4.7.0
Run ncu -u to upgrade package.json