templates that have a failing engines key in package.json, and version is pre-release, cannot be installed (using `latest` dist-tag)
Template: https://github.com/adobe/commerce-events-ext-tpl
Repro Steps
- Use
[email protected]or greater and[email protected]or greater - Install the template above using the aio-cli (via
aio app init) ornpm i
Error:
npm error code ETARGET
npm error notarget No matching version found for @adobe/commerce-events-ext-tpl@*.
npm error notarget In most cases you or one of your dependencies are requesting
npm error notarget a package version that doesn't exist.
Expected Behavior
The template/module can be installed.
Actual Behavior
The template/module cannot be installed and results in an error.
Investigation
[email protected] or greater has different behavior due to a bug fix. Users may have been relying on buggy behavior which has been fixed now.
The template above has an engines key of ^14 and is a pre-release version 1.0.0-beta.9 which results in the error.
Installing the module using a specific version, will not result in the error, there is an error only if it's using the latest dist-tag.
If I tested npm i of a module that fails the engine check on node-22 and is not a pre-release, it does not result in an error. Example module.
Fix
Remove the "engines" key from the template's package.json or update the engines key to a version that will pass on nodes >= 20, and/or update the version to a non-pre-release version.
Supporting Info
- https://docs.npmjs.com/cli/v10/using-npm/changelog#1082-2024-07-09
- https://github.com/npm/npm-pick-manifest/releases/tag/v9.1.0
- https://github.com/npm/npm-pick-manifest/commit/9f5560ff8a21a83323fa188b44db8545ac8bd55d
- https://github.com/nodejs/nodejs.org/issues/6913
- node version to npm version mappings: https://nodejs.org/dist/index.json