{"action":"created","issue":{"url":"https://api.github.com/repos/driftyco/ionic2-app-base/issues/101","repository_url":"https://api.github.com/repos/driftyco/ionic2-app-base","labels_url":"https://api.github.com/repos/driftyco/ionic2-app-base/issues/101/labels{/name}","comments_url":"https://api.github.com/repos/driftyco/ionic2-app-base/issues/101/comments","events_url":"https://api.github.com/repos/driftyco/ionic2-app-base/issues/101/events","html_url":"https://github.com/driftyco/ionic2-app-base/issues/101","id":185824337,"number":101,"title":"Consider using absolute package versions in package.json instead of carets","user":{"login":"jthoms1","id":1425431,"avatar_url":"https://avatars.githubusercontent.com/u/1425431?v=3","gravatar_id":"","url":"https://api.github.com/users/jthoms1","html_url":"https://github.com/jthoms1","followers_url":"https://api.github.com/users/jthoms1/followers","following_url":"https://api.github.com/users/jthoms1/following{/other_user}","gists_url":"https://api.github.com/users/jthoms1/gists{/gist_id}","starred_url":"https://api.github.com/users/jthoms1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jthoms1/subscriptions","organizations_url":"https://api.github.com/users/jthoms1/orgs","repos_url":"https://api.github.com/users/jthoms1/repos","events_url":"https://api.github.com/users/jthoms1/events{/privacy}","received_events_url":"https://api.github.com/users/jthoms1/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-10-28T02:24:39Z","updated_at":"2016-10-28T04:59:30Z","closed_at":null,"body":"_From @fiznool on October 13, 2016 10:37_\n\n#### Short description of the problem:\r\n\r\nToday, angular 2.1 was released.\r\n\r\nThe current dependencies list in `package.json` that is generated from `ionic start` looks like this:\r\n\r\n```\r\n\"dependencies\": {\r\n  \"@angular/common\": \"^2.0.0\",\r\n  \"@angular/compiler\": \"^2.0.0\",\r\n  \"@angular/compiler-cli\": \"^0.6.2\",\r\n  \"@angular/core\": \"^2.0.0\",\r\n  \"@angular/forms\": \"^2.0.0\",\r\n  \"@angular/http\": \"^2.0.0\",\r\n  \"@angular/platform-browser\": \"^2.0.0\",\r\n  \"@angular/platform-browser-dynamic\": \"^2.0.0\",\r\n  \"@angular/platform-server\": \"^2.0.0\",\r\n  \"ionic-angular\": \"^2.0.0-rc.0\",\r\n  \"ionicons\": \"^3.0.0\",\r\n  \"@ionic/storage\": \"^1.0.3\",\r\n  \"ionic-native\": \"^2.0.3\",\r\n  \"rxjs\": \"^5.0.0-beta.12\",\r\n  \"zone.js\": \"^0.6.21\"\r\n}\r\n```\r\n\r\nThis is currently causing the following issues when `npm install` completes:\r\n\r\n```\r\nnpm WARN @angular/compiler-cli@0.6.4 requires a peer of @angular/compiler@2.0.2 but none was installed.\r\nnpm WARN @angular/compiler-cli@0.6.4 requires a peer of @angular/platform-server@2.0.2 but none was installed.\r\nnpm WARN @angular/compiler-cli@0.6.4 requires a peer of @angular/core@2.0.2 but none was installed.\r\nnpm WARN @angular/core@2.1.0 requires a peer of rxjs@5.0.0-beta.12 but none was installed.\r\nnpm WARN @angular/http@2.1.0 requires a peer of rxjs@5.0.0-beta.12 but none was installed.\r\n```\r\n\r\nA quick check of `npm ls --depth=0` yields the following:\r\n\r\n```\r\n├── @angular/common@2.1.0\r\n├── UNMET PEER DEPENDENCY @angular/compiler@2.1.0\r\n├── @angular/compiler-cli@0.6.4\r\n├── UNMET PEER DEPENDENCY @angular/core@2.1.0\r\n├── @angular/forms@2.1.0\r\n├── @angular/http@2.1.0\r\n├── @angular/platform-browser@2.1.0\r\n├── @angular/platform-browser-dynamic@2.1.0\r\n├── UNMET PEER DEPENDENCY @angular/platform-server@2.1.0\r\n├── @ionic/app-scripts@0.0.30\r\n├── @ionic/storage@1.1.6\r\n├── ionic-angular@2.0.0-rc.0\r\n├── ionic-native@2.2.2\r\n├── ionicons@3.0.0\r\n├── UNMET PEER DEPENDENCY rxjs@5.0.0-rc.1\r\n├── typescript@2.0.3\r\n└── zone.js@0.6.25\r\n\r\nnpm ERR! peer dep missing: @angular/compiler@2.0.2, required by @angular/compiler-cli@0.6.4\r\nnpm ERR! peer dep missing: @angular/compiler@2.0.2, required by @angular/compiler-cli@0.6.4\r\nnpm ERR! peer dep missing: @angular/core@2.0.2, required by @angular/compiler-cli@0.6.4\r\nnpm ERR! peer dep missing: @angular/core@2.0.2, required by @angular/compiler-cli@0.6.4\r\nnpm ERR! peer dep missing: @angular/platform-server@2.0.2, required by @angular/compiler-cli@0.6.4\r\nnpm ERR! peer dep missing: @angular/platform-server@2.0.2, required by @angular/compiler-cli@0.6.4\r\nnpm ERR! peer dep missing: rxjs@5.0.0-beta.12, required by @angular/core@2.1.0\r\nnpm ERR! peer dep missing: rxjs@5.0.0-beta.12, required by @angular/http@2.1.0\r\nnpm ERR! peer dep missing: rxjs@5.0.0-beta.12, required by @angular/core@2.1.0\r\nnpm ERR! peer dep missing: rxjs@5.0.0-beta.12, required by @angular/http@2.1.0\r\nnpm ERR! peer dep missing: rxjs@5.0.0-beta.12, required by @angular/core@2.1.0\r\n```\r\n\r\nSo, as you can see, the caret in our `package.json` has caused some updated packages to be installed, but these now create unsatisfied peer dependency errors. The reason for this, is that the angular packages which define their peer dependencies do so _without_ a caret, i.e. they explicitly reference a particular version.\r\n\r\nIt could be argued that angular shouldn't be doing this, but to stop broken installs, I suggest that the `ionic start` command should create a `package.json` `dependencies` list without carets:\r\n\r\n```\r\n\"dependencies\": {\r\n  \"@angular/common\": \"2.0.0\",\r\n  \"@angular/compiler\": \"2.0.0\",\r\n  \"@angular/compiler-cli\": \"0.6.2\",\r\n  \"@angular/core\": \"2.0.0\",\r\n  \"@angular/forms\": \"2.0.0\",\r\n  \"@angular/http\": \"2.0.0\",\r\n  \"@angular/platform-browser\": \"2.0.0\",\r\n  \"@angular/platform-browser-dynamic\": \"2.0.0\",\r\n  \"@angular/platform-server\": \"2.0.0\",\r\n  \"ionic-angular\": \"2.0.0-rc.0\",\r\n  \"ionicons\": \"3.0.0\",\r\n  \"@ionic/storage\": \"1.0.3\",\r\n  \"ionic-native\": \"2.0.3\",\r\n  \"rxjs\": \"5.0.0-beta.12\",\r\n  \"zone.js\": \"0.6.21\"\r\n}\r\n```\r\n\r\nI'd argue that this should be the default behaviour for apps anyway - we should be locking down our dependencies unless we explicitly want to update them.\n\n_Copied from original issue: driftyco/ionic-cli#1535_"},"comment":{"url":"https://api.github.com/repos/driftyco/ionic2-app-base/issues/comments/256836562","html_url":"https://github.com/driftyco/ionic2-app-base/issues/101#issuecomment-256836562","issue_url":"https://api.github.com/repos/driftyco/ionic2-app-base/issues/101","id":256836562,"user":{"login":"fiznool","id":820863,"avatar_url":"https://avatars.githubusercontent.com/u/820863?v=3","gravatar_id":"","url":"https://api.github.com/users/fiznool","html_url":"https://github.com/fiznool","followers_url":"https://api.github.com/users/fiznool/followers","following_url":"https://api.github.com/users/fiznool/following{/other_user}","gists_url":"https://api.github.com/users/fiznool/gists{/gist_id}","starred_url":"https://api.github.com/users/fiznool/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fiznool/subscriptions","organizations_url":"https://api.github.com/users/fiznool/orgs","repos_url":"https://api.github.com/users/fiznool/repos","events_url":"https://api.github.com/users/fiznool/events{/privacy}","received_events_url":"https://api.github.com/users/fiznool/received_events","type":"User","site_admin":false},"created_at":"2016-10-28T04:59:30Z","updated_at":"2016-10-28T04:59:30Z","body":"Thanks for moving this to the correct place. \r\n\r\nI believe this has been fixed already by https://github.com/driftyco/ionic2-app-base/commit/6176f61a854511906e320962c8b4e7204f06634a"}}
{"actor":{"display_login":"fiznool"}}