Skip to content

Releases: raineorshine/npm-check-updates

v21.0.0

14 Apr 20:04

Choose a tag to compare

⚠️ Breaking Changes

This is a major breaking change with significant architectural updates.

ESM Migration & Module System

  • Pure ESM: Converted to pure ESM with dual-build support (ESM/CJS) via Vite 8.
  • Import Syntax: Programmatic usage now requires named imports or namespace imports.
    • Old: import ncu from 'npm-check-updates'
    • New: import * as ncu from 'npm-check-updates' or import { run } from 'npm-check-updates'
  • Node.js Requirements: Now requires ^20.19.0 || ^22.12.0 || >=24.0.0. This is required for native require(esm) support and the Rolldown engine.
  • npm Requirements: Minimum version increased to >=10.0.0.

Configuration Files (.ncurc.js)

  • Files named .ncurc.js that use module.exports will now fail in projects that are not "type": "module".
  • Fix: Rename these files to .ncurc.cjs or convert them to use export default.

Dependency Updates (Pure ESM versions)

Package Old Version New Version
camelcase ^6.3.0 ^9.0.0
chai ^4.3.10 ^6.2.2
chai-as-promised ^7.1.2 ^8.0.2
find-up 5.0.0 8.0.0
p-map ^4.0.0 ^7.0.4
untildify ^4.0.0 ^6.0.0

Tooling & Build Changes

  • Vite 8 Upgrade: Migrated to Vite 8 with the new Rust-based Rolldown bundler (10-30x faster builds).
  • TypeScript 6.0: Adopted latest type-system features and performance improvements.
  • Strip ANSI: Replaced strip-ansi with Node.js built-in util.stripVTControlCharacters.
  • Test Runner: Replaced vite-node with tsx for TypeScript support in ESM context.

Migration Guide

If you are upgrading to v21 from earlier versions:

1. Environment Check

  • Ensure you meet the new Node.js requirement: ^20.19.0 || ^22.12.0 || >=24.0.0.
  • Update npm to at least 10.0.0.

2. Update Configuration Files

If you have a .ncurc.js file:

  • Option A: Rename it to .ncurc.cjs.

  • Option B: Convert it to ESM:

    import { defineConfig } from 'npm-check-updates'
    
    export default defineConfig({
      upgrade: true,
      filter: name => name.startsWith('@myorg/'),
    })

3. Update Programmatic Usage

If you import npm-check-updates in your scripts:

  • ESM: Change import ncu from ... to import * as ncu from 'npm-check-updates'.
  • CommonJS: Ensure you are destructuring the named exports or using the full object:
const ncu = require('npm-check-updates')
// Use ncu.run(...)

Testing

Tests now use tsx for module loading. When running tests manually:

mocha --node-option import=tsx 'test/**/*.test.ts'

Or use the npm script:

npm test

Related Issues & PRs

PR 1649

Full Changelog: v20.0.2...v21.0.0

v20.0.2

13 Apr 18:46

Choose a tag to compare

What's Changed

  • Show auto-detected cooldown source at normal log level; fix test isolation by @bayraak in #1662

New Contributors

Full Changelog: v20.0.1...v20.0.2

v20.0.1

10 Apr 02:11

Choose a tag to compare

What's Changed

  • Add CI workflow to verify build output is committed by @Copilot in #1645
  • Bump lodash-es from 4.17.23 to 4.18.1 by @dependabot[bot] in #1647
  • Add Node v24 to test workflow by @Copilot in #1608
  • feat: remove pre-push git hook by @Zamiell in #1658
  • feat: add verbose output when packages are skipped due to cooldown by @Copilot in #1659

Full Changelog: v20.0.0...v20.0.1

v20.0.0

31 Mar 22:18

Choose a tag to compare

Auto Cooldown

The cooldown option is now automatically applied from the respective package manager's config:

  • npm - min-release-age (#1632)
  • yarn - npmMinimalAgeGate (excluding npmPreapprovedPackages) (#1643)
  • pnpm - minimumReleaseAge (excluding minimumReleaseAgeExclude) (#1639)

Why is this a breaking change?

Other changes

New Contributors

  • @onemen made their first contribution in #1630
  • @Copilot made their first contribution in #1632

Full Changelog: v19.6.6...v20.0.0

v19.6.6

26 Mar 16:24

Choose a tag to compare

Full Changelog: v19.6.5...v19.6.6

v19.6.5

16 Mar 23:44

Choose a tag to compare

What's Changed

  • fix(pnpm): fallback from pnpm.cmd to pnpm on Windows for non-standard installs by @terminalchai in #1606

New Contributors

Full Changelog: v19.6.3...v19.6.5

v19.6.3

27 Feb 18:09

Choose a tag to compare

Full Changelog: v19.6.2...v19.6.3

v19.6.2

26 Feb 20:40

Choose a tag to compare

What's Changed

  • fix: fix overwrites pnpm-workspace.yaml and .yarnrc.yml into json by @MKruschke in #1589

Full Changelog: v19.6.1...v19.6.2

v19.6.1

26 Feb 19:05

Choose a tag to compare

What's Changed

Full Changelog: v19.6.0...v19.6.1

v19.6.0

26 Feb 17:54

Choose a tag to compare

What's Changed

  • Display link to compare the changes between package versions (--format diff) by @diegocr in #1602

New Contributors

Full Changelog: v19.5.0...v19.6.0