{"action":"created","issue":{"url":"https://api.github.com/repos/lerna/lerna/issues/334","repository_url":"https://api.github.com/repos/lerna/lerna","labels_url":"https://api.github.com/repos/lerna/lerna/issues/334/labels{/name}","comments_url":"https://api.github.com/repos/lerna/lerna/issues/334/comments","events_url":"https://api.github.com/repos/lerna/lerna/issues/334/events","html_url":"https://github.com/lerna/lerna/issues/334","id":175871851,"number":334,"title":"Automatic hoisting of common dependencies to repo root","user":{"login":"gigabo","id":115908,"avatar_url":"https://avatars.githubusercontent.com/u/115908?v=3","gravatar_id":"","url":"https://api.github.com/users/gigabo","html_url":"https://github.com/gigabo","followers_url":"https://api.github.com/users/gigabo/followers","following_url":"https://api.github.com/users/gigabo/following{/other_user}","gists_url":"https://api.github.com/users/gigabo/gists{/gist_id}","starred_url":"https://api.github.com/users/gigabo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gigabo/subscriptions","organizations_url":"https://api.github.com/users/gigabo/orgs","repos_url":"https://api.github.com/users/gigabo/repos","events_url":"https://api.github.com/users/gigabo/events{/privacy}","received_events_url":"https://api.github.com/users/gigabo/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/lerna/lerna/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":8,"created_at":"2016-09-08T21:41:22Z","updated_at":"2016-09-12T17:19:43Z","closed_at":"2016-09-12T16:53:20Z","body":"This was left out of #237 to reduce its scope, but is still a valuable improvement!\r\n\r\nHoisting external dependencies that are shared across packages:\r\n\r\n- dramatically speeds up bootstrap\r\n- reduces the storage footprint of a Lerna repo\r\n- handles the singleton problem where a common dependency (e.g. React) must be shared\r\n\r\nShould this be default behavior, or an option (`lerna bootstrap --hoist-external`)?\r\n\r\nIt definitely needs a way to opt-out at the dependency level (we have deps internally at Redfin that _can't_ be hoisted).  What does that look like?  An option like `--no-hoist=<externalDep>`?"},"comment":{"url":"https://api.github.com/repos/lerna/lerna/issues/comments/246422129","html_url":"https://github.com/lerna/lerna/issues/334#issuecomment-246422129","issue_url":"https://api.github.com/repos/lerna/lerna/issues/334","id":246422129,"user":{"login":"laurentdesmet","id":6281175,"avatar_url":"https://avatars.githubusercontent.com/u/6281175?v=3","gravatar_id":"","url":"https://api.github.com/users/laurentdesmet","html_url":"https://github.com/laurentdesmet","followers_url":"https://api.github.com/users/laurentdesmet/followers","following_url":"https://api.github.com/users/laurentdesmet/following{/other_user}","gists_url":"https://api.github.com/users/laurentdesmet/gists{/gist_id}","starred_url":"https://api.github.com/users/laurentdesmet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/laurentdesmet/subscriptions","organizations_url":"https://api.github.com/users/laurentdesmet/orgs","repos_url":"https://api.github.com/users/laurentdesmet/repos","events_url":"https://api.github.com/users/laurentdesmet/events{/privacy}","received_events_url":"https://api.github.com/users/laurentdesmet/received_events","type":"User","site_admin":false},"created_at":"2016-09-12T17:19:43Z","updated_at":"2016-09-12T17:19:43Z","body":"Well, then this means that Lerna is not usable (without tweaking it yourself) for any project that uses singleton modules like React or where each package has a lot of dependencies (resulting in performance issues). Contradictory, these are the projects that need Lerna the most.\r\n\r\nThe result of this is that a lot of people that use Lerna, are adding little ad hoc scripts to make it work for them, resulting in a fragmentation. Or others will just give up and leave Lerna altogether. I'm not sure if that will help the project's long-term success.\r\n\r\nIsn't it then the lesser evil to provide such an option to hoist common dependencies?\r\nOr is it an option that we symlink common modules to some common folder in the root?"}}
{"actor":{"display_login":"laurentdesmet"}}