{"action":"created","issue":{"url":"https://api.github.com/repos/rstacruz/pnpm/issues/5","labels_url":"https://api.github.com/repos/rstacruz/pnpm/issues/5/labels{/name}","comments_url":"https://api.github.com/repos/rstacruz/pnpm/issues/5/comments","events_url":"https://api.github.com/repos/rstacruz/pnpm/issues/5/events","html_url":"https://github.com/rstacruz/pnpm/issues/5","id":129667864,"number":5,"title":"support inherited dependencies (\"peerDependencies\")","user":{"login":"jkroso","id":1103796,"avatar_url":"https://avatars.githubusercontent.com/u/1103796?v=3","gravatar_id":"","url":"https://api.github.com/users/jkroso","html_url":"https://github.com/jkroso","followers_url":"https://api.github.com/users/jkroso/followers","following_url":"https://api.github.com/users/jkroso/following{/other_user}","gists_url":"https://api.github.com/users/jkroso/gists{/gist_id}","starred_url":"https://api.github.com/users/jkroso/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jkroso/subscriptions","organizations_url":"https://api.github.com/users/jkroso/orgs","repos_url":"https://api.github.com/users/jkroso/repos","events_url":"https://api.github.com/users/jkroso/events{/privacy}","received_events_url":"https://api.github.com/users/jkroso/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-01-29T05:04:34Z","updated_at":"2016-01-29T07:01:03Z","closed_at":"2016-01-29T07:01:03Z","body":"packages like `pg-then` will `require('pg')` even though they don't declare it as a dependency. This works with npm since `pg-then` ends up being installed in the same node_modules folder as `pg` but when they are symlinked from a global store this doesn't work. And `babel-runtime` does `require('babel-runtime')`. haha\r\n\r\nThese packages should declare these dependencies in \"peerDependencies\" but they don't because with npm they can get away without it.\r\n\r\nAnd BTW the hackery I mentioned in #1 won't be necessary if `pnpm` support \"peerDependencies\" and if packages use it correctly"},"comment":{"url":"https://api.github.com/repos/rstacruz/pnpm/issues/comments/176607266","html_url":"https://github.com/rstacruz/pnpm/issues/5#issuecomment-176607266","issue_url":"https://api.github.com/repos/rstacruz/pnpm/issues/5","id":176607266,"user":{"login":"rstacruz","id":74385,"avatar_url":"https://avatars.githubusercontent.com/u/74385?v=3","gravatar_id":"","url":"https://api.github.com/users/rstacruz","html_url":"https://github.com/rstacruz","followers_url":"https://api.github.com/users/rstacruz/followers","following_url":"https://api.github.com/users/rstacruz/following{/other_user}","gists_url":"https://api.github.com/users/rstacruz/gists{/gist_id}","starred_url":"https://api.github.com/users/rstacruz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rstacruz/subscriptions","organizations_url":"https://api.github.com/users/rstacruz/orgs","repos_url":"https://api.github.com/users/rstacruz/repos","events_url":"https://api.github.com/users/rstacruz/events{/privacy}","received_events_url":"https://api.github.com/users/rstacruz/received_events","type":"User","site_admin":false},"created_at":"2016-01-29T07:01:03Z","updated_at":"2016-01-29T07:01:03Z","body":"> And babel-runtime does require('babel-runtime'). haha\r\n\r\nThis is accounted for, actually. `babel-runtime@5.8.12/node_modules/babel-runtime` is a symlink to `babel-runtime@5.8.12`. I don't know why they'd bother doing that though, it seems only `babel-runtime@^5` has this issue... but yeah, I'm able to get babel to work with pnpm here.\r\n\r\n> These packages should declare these dependencies in \"peerDependencies\" but they don't because with npm they can get away without it.\r\n\r\npeerDependencies isn't \"supported\" by npm, btw. Modern npm2 and npm3 versions won't install any peerDependencies for you. With `pg-then` + `pg`, you're expected to add both to your project. This is the same with other similar setups (some of these examples declare others as peerDependencies, some don't):\r\n\r\n* `eslint` + `eslint-config-standard`\r\n* `jsdom` + `jsdom-global`\r\n* `pg` + `knex`\r\n* `babel-preset-es2015` + `babel-runtime` (or `babel-register`, `babelify`, `babel-core`)\r\n* `browserify` + `babelify`\r\n* etc...\r\n\r\npnpm more or less mirrors `npm@2`'s behavior."}}