# What changed in node-gyp

> 15 changes in node-gyp 4 to 13 from its official release notes, upgrade guides and advisories: 5 breaking. Each one cited. Sources checked 2026-11-01. HTML: https://unstale.sh/npm/node-gyp/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## node-gyp 13

### Fixes and other changes

- The command-line option now overrides npm_config_loglevel. (13.1.0) — [release notes](https://github.com/nodejs/node-gyp/releases/tag/v13.1.0)
- Accepts --msvs_version as documented. (13.1.0) — [release notes](https://github.com/nodejs/node-gyp/releases/tag/v13.1.0)
- Falls back gracefully when build symlink creation fails. (13.0.2) — [release notes](https://github.com/nodejs/node-gyp/releases/tag/v13.0.2)
- Fixes the Windows VS2026 version handling. (13.0.1) — [release notes](https://github.com/nodejs/node-gyp/releases/tag/v13.0.1)

## node-gyp 11

### Breaking changes

- Node.js 16 is no longer supported. (11.0.0) — [release notes](https://github.com/nodejs/node-gyp/releases/tag/v11.0.0)

## node-gyp 10

### Breaking changes

- Internal functions now return promises and no longer accept callbacks, which may affect consumers that require them directly. (10.0.0) — [release notes](https://github.com/nodejs/node-gyp/releases/tag/v10.0.0)
- The supported Node.js versions are now ^16.14.0 or >=18.0.0; Node.js 14 is no longer supported. (10.0.0) — [release notes](https://github.com/nodejs/node-gyp/releases/tag/v10.0.0)
- The order of Python checks on Windows has changed, which may affect which Python installation node-gyp finds. (10.0.0) — [release notes](https://github.com/nodejs/node-gyp/releases/tag/v10.0.0)

### Behavior and default changes

- The exported Gyp class is now created using ECMAScript classes, which may cause small differences from classes created with util.inherits. (10.0.0) — [release notes](https://github.com/nodejs/node-gyp/releases/tag/v10.0.0)
- Published files are now limited using .npmignore, which changes which files are included in the package. (10.0.0) — [release notes](https://github.com/nodejs/node-gyp/releases/tag/v10.0.0)
- The Python symlink is created only during builds and cleaned up afterward. (10.0.0) — [release notes](https://github.com/nodejs/node-gyp/releases/tag/v10.0.0)

## node-gyp 9

### Breaking changes

- The supported Node.js versions are now ^12.22, ^14.13, or >=16. (9.0.0) — [release notes](https://github.com/nodejs/node-gyp/releases/tag/v9.0.0)

### Fixes and other changes

- On z/OS, lib.target is now searched as a path for libnode. (9.0.0) — [release notes](https://github.com/nodejs/node-gyp/releases/tag/v9.0.0)
- Underscores in npm_config_ environment variables are handled. (9.0.0) — [release notes](https://github.com/nodejs/node-gyp/releases/tag/v9.0.0)

## node-gyp 4

### Fixes and other changes

- Uses print() when detecting the Python version. (4.0.0) — [release notes](https://github.com/nodejs/node-gyp/blob/HEAD/CHANGELOG.md)
