Skip to content


Subversion checkout URL

You can clone with
Download ZIP


EPEERINVALID and git dependencies #3218

Raynos opened this Issue · 8 comments

8 participants


My travis CI build failed ( ) because I have peer dependencies on Raynos/reducible#1.x and and it claims it's invalid even though I've correctly installed it.

i.e. its peer valid but it just uses git links instead of version numbers

cc @isaacs @domenic

452make: Leaving directory `/home/travis/build/Colingo/snapshot-reduce/node_modules/testem/node_modules/'
453npm WARN unmet dependency /home/travis/build/Colingo/snapshot-reduce/node_modules/mongo-client requires reducers@'Raynos/reducers' but will load
454npm WARN unmet dependency /home/travis/build/Colingo/snapshot-reduce/node_modules/reducers,
455npm WARN unmet dependency which is version 3.0.0-alpha
456npm WARN unmet dependency /home/travis/build/Colingo/snapshot-reduce/node_modules/mongo-client requires callback-reduce@'Raynos/callback-reduce' but will load
457npm WARN unmet dependency /home/travis/build/Colingo/snapshot-reduce/node_modules/callback-reduce,
458npm WARN unmet dependency which is version 1.1.0
459npm WARN unmet dependency /home/travis/build/Colingo/snapshot-reduce/node_modules/mongo-client/node_modules/cache-reduce/node_modules/buffer-reduce requires reducers@'Raynos/reducers' but will load
460npm WARN unmet dependency /home/travis/build/Colingo/snapshot-reduce/node_modules/reducers,
461npm WARN unmet dependency which is version 3.0.0-alpha
462npm ERR! peerinvalid The package reducible does not satisfy its siblings' peerDependencies requirements!
463npm ERR! peerinvalid Peer incremental-map-reduce@0.1.2 wants reducible@Raynos/reducible#1.x
464npm ERR! peerinvalid Peer reducers@3.0.0-alpha wants reducible@~1.x.0
465npm ERR! peerinvalid Peer mongo-client@0.1.6 wants reducible@Raynos/reducible#1.x
466npm ERR! peerinvalid Peer callback-reduce@1.1.0 wants reducible@~1.0.5
467npm ERR! peerinvalid Peer introspect-reduce@0.1.2 wants reducible@Raynos/reducible#1.x
469npm ERR! System Linux 2.6.32-042stab061.2
470npm ERR! command "/home/travis/.nvm/v0.8.21/bin/node" "/home/travis/.nvm/v0.8.21/bin/npm" "install"
471npm ERR! cwd /home/travis/build/Colingo/snapshot-reduce
472npm ERR! node -v v0.8.21
473npm ERR! npm -v 1.2.11
475npm ERR! 
476npm ERR! Additional logging details can be found in:
477npm ERR!     /home/travis/build/Colingo/snapshot-reduce/npm-debug.log
478npm ERR! not ok code 0
480The command "npm install" failed and exited with 1 during install.

Does the Raynos/reducible#1.x syntax work for git dependencies now? I thought that wasn't implemented yet.


Does the Raynos/reducible#1.x syntax work for git dependencies now?

Yeah, it does.

I think the peerInvalid check probably ought to look at the _resolved or _from fields that get stashed on the package.json file.


This is relevant to my interests, not sure if I'll have time to patch myself, we shall see.


Does this issue have a workaround?
I need to use a patched version of bower from my fork as a peer dependency.


The workaround is writing a pull request :-/



I wouldn't mind trying to solve this one, but looking into npm and how tests are written I am somewhat confused. Are there any resources on how tests should be written? I looked at the outdated-git test but that seems to go to github directly for packages. Is there a way to mock out git repos so that the tests don't rely on github at all?


Alternatively, we can just delete the entire peerDependencies feature.

There was some commentry that peerDependencies is not useful ( , ).

I actually agree. If it's not a first class citizen (optional peer deps, git deps) we can just delete it instead.

Adding complexity to npm to support "plugins" was a bad idea.

cc @domenic @mikeal


Experiencing something like this too, but without git deps, just normal npm deps:


This should be valid no? As 1 should mean >= 1.0.0 < 2 right? So combined with ^1.2.0, together it should evaluated to >= 1.2.0 < 2 for all right?

> require('semver').satisfies('1.2.0', '1')
> require('semver').satisfies('1.2.0', '^1.2.0')

package.json has:

  "dependencies": {
    "chainy": "1",
    "chainy-core": "1",
    "chainy-plugin-set": "1",
    "chainy-plugin-feed": "1",
    "chainy-plugin-flatten": "1",
    "chainy-plugin-count": "1",
    "chainy-plugin-uniq": "1",
    "chainy-plugin-hasfield": "1",
    "chainy-plugin-map": "1",
    "chainy-plugin-geocode": "1",
    "chainy-plugin-pipe": "1",
    "chainy-plugin-log": "1"

Update: Issue seems to be due to an old version of npm on runnable.

@tandrewnichols tandrewnichols referenced this issue in rendro/mocha-given

Peer dependency problem #6

@skibblenybbles skibblenybbles referenced this issue from a commit in republicwireless-open/grunt-formidable
@skibblenybbles skibblenybbles Eliminated formidable peerDependency because of npm/npm#3218. 9f9c8ce
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.