-
Notifications
You must be signed in to change notification settings - Fork 3k
engineStrict blocks use of nightly and prerelease versions of node and iojs #7171
Comments
An example of this is |
Is there at least a command line flag to force engineStrict to be false, overriding the package.json? |
|
This issue may be a duplicate of #6104, albeit from a less documentation centric perspective. |
|
$ ~/Downloads/iojs-v1.0.3-nightly2015011850177fb13c-darwin-x64/bin/npm install --no-engine-strict [email protected]
npm ERR! Darwin 14.0.0
npm ERR! argv "/Users/ryan/Downloads/iojs-v1.0.3-nightly2015011850177fb13c-darwin-x64/bin/iojs" "/Users/ryan/Downloads/iojs-v1.0.3-nightly2015011850177fb13c-darwin-x64/bin/npm" "install" "--no-engine-strict" "[email protected]"
npm ERR! node v1.0.3-nightly2015011850177fb13c
npm ERR! npm v2.2.0
npm ERR! code ENOTSUP
npm ERR! notsup Unsupported
npm ERR! notsup Not compatible with your version of node/npm: [email protected]
npm ERR! notsup Required: {"node":">= 0.10"}
npm ERR! notsup Actual: {"npm":"2.2.0","node":"1.0.3-nightly2015011850177fb13c"}
npm ERR! Please include the following file with any support request:
npm ERR! /Users/ryan/tmp/npm-debug.log As an aside, when the strictness of the engine dependency changes you end up with the engine dep failure completely masked by the created version range mismatch: $ ~/Downloads/iojs-v1.0.3-nightly2015011850177fb13c-darwin-x64/bin/npm install --no-engine-strict vinyl-fs@^0.3.0
npm ERR! Darwin 14.0.0
npm ERR! argv "/Users/ryan/Downloads/iojs-v1.0.3-nightly2015011850177fb13c-darwin-x64/bin/iojs" "/Users/ryan/Downloads/iojs-v1.0.3-nightly2015011850177fb13c-darwin-x64/bin/npm" "install" "--no-engine-strict" "vinyl-fs@^0.3.0"
npm ERR! node v1.0.3-nightly2015011850177fb13c
npm ERR! npm v2.2.0
npm ERR! code ETARGET
npm ERR! notarget No compatible version found: vinyl-fs@'>=0.3.0 <0.4.0'
npm ERR! notarget Valid install targets:
npm ERR! notarget ["0.0.1","0.0.2","0.1.0"]
npm ERR! notarget
npm ERR! notarget This is most likely not a problem with npm itself.
npm ERR! notarget In most cases you or one of your dependencies are requesting
npm ERR! notarget a package version that doesn't exist.
npm ERR! Please include the following file with any support request:
npm ERR! /Users/ryan/tmp/npm-debug.log |
What @othiym23 said would be true if
|
Correction! My apologies to @othiym23, who was unfairly maligned just now. |
After some in-air discussion, we've decided the best solution to this problem is to remove support for |
@othiym23 I hadn't considered removing Would still be breaking, but might be less breaking, as it would enforce |
@rmg, that would just introduce yet another semver variation. Its complex enough, having a second flavour seems not an improvement. |
@rmg what @sam-github said. I don't really think people have really had time to absorb the changes in |
@sam-github you're right, I take it back. Removing |
A use-at-your-own-risk workaround is |
In newest version of npm, this makes depreciation warnings. See npm/npm#7171 for justification of removal of this feature from npm.
Happily, as of |
Anyone using a pre-release or nightly build of node or iojs is used to seeing a stream of warning about unmet engine requirements. Annoying, but acceptable.
The problem comes when one of those packages uses
"engineStrict": true
.I have no idea how this could/would be fixed in npm without abandoning semver for that field, but the problem is real and this seems like the best place to draw attention to it. If nothing else it can be an issue to cite when reporting issues and submitting PRs to the modules making use of
"node": ">= 0.10"
and expecting it to allow "anything 0.10 or newer".The text was updated successfully, but these errors were encountered: