{"action":"created","issue":{"url":"https://api.github.com/repos/jspm/jspm-cli/issues/1506","repository_url":"https://api.github.com/repos/jspm/jspm-cli","labels_url":"https://api.github.com/repos/jspm/jspm-cli/issues/1506/labels{/name}","comments_url":"https://api.github.com/repos/jspm/jspm-cli/issues/1506/comments","events_url":"https://api.github.com/repos/jspm/jspm-cli/issues/1506/events","html_url":"https://github.com/jspm/jspm-cli/issues/1506","id":132304470,"number":1506,"title":"Question: Distinction between JSPM & SystemJS?","user":{"login":"hannahhoward","id":1450680,"avatar_url":"https://avatars.githubusercontent.com/u/1450680?v=3","gravatar_id":"","url":"https://api.github.com/users/hannahhoward","html_url":"https://github.com/hannahhoward","followers_url":"https://api.github.com/users/hannahhoward/followers","following_url":"https://api.github.com/users/hannahhoward/following{/other_user}","gists_url":"https://api.github.com/users/hannahhoward/gists{/gist_id}","starred_url":"https://api.github.com/users/hannahhoward/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hannahhoward/subscriptions","organizations_url":"https://api.github.com/users/hannahhoward/orgs","repos_url":"https://api.github.com/users/hannahhoward/repos","events_url":"https://api.github.com/users/hannahhoward/events{/privacy}","received_events_url":"https://api.github.com/users/hannahhoward/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-02-09T01:15:53Z","updated_at":"2016-02-09T01:58:55Z","closed_at":null,"body":"Hi project maintainers,\r\n\r\n   I've searched the internet and I'm having trouble understanding exactly the distinction between SystemJS alone and SystemJS + JSPM. I ask cause:\r\n\r\n1. I'm converting an Angular 1 app to Angular 2. Angular 2 docs seem to use SystemJS, but not JSPM. I think.\r\n2. I've been using NPM as my main package manager up till now and I'm pretty happy with it. The only thing I really need is something to load up all the files asynchronously in the browser (or bundle them up for production).\r\n\r\nI get the feeling all I really need is SystemJS + SystemJS Builder. But can you give any feedback on why I might want to use JSPM as well? Maybe the answer will be helpful for future developers."},"comment":{"url":"https://api.github.com/repos/jspm/jspm-cli/issues/comments/181667122","html_url":"https://github.com/jspm/jspm-cli/issues/1506#issuecomment-181667122","issue_url":"https://api.github.com/repos/jspm/jspm-cli/issues/1506","id":181667122,"user":{"login":"lookfirst","id":85355,"avatar_url":"https://avatars.githubusercontent.com/u/85355?v=3","gravatar_id":"","url":"https://api.github.com/users/lookfirst","html_url":"https://github.com/lookfirst","followers_url":"https://api.github.com/users/lookfirst/followers","following_url":"https://api.github.com/users/lookfirst/following{/other_user}","gists_url":"https://api.github.com/users/lookfirst/gists{/gist_id}","starred_url":"https://api.github.com/users/lookfirst/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lookfirst/subscriptions","organizations_url":"https://api.github.com/users/lookfirst/orgs","repos_url":"https://api.github.com/users/lookfirst/repos","events_url":"https://api.github.com/users/lookfirst/events{/privacy}","received_events_url":"https://api.github.com/users/lookfirst/received_events","type":"User","site_admin":false},"created_at":"2016-02-09T01:58:55Z","updated_at":"2016-02-09T01:58:55Z","body":"jspm is the package manager. It reads a package.json file for dependencies and writes out a config.js file of where those dependencies were installed. It also munges the files that are installed into jspm_packages in order to make them dependency aware if they aren't already. It does a bit more, but that is a good enough summary for now. =)\r\n\r\nnpm fails as a package manager for the web right now because it doesn't know how to relate dependencies together well enough or handle the differences between different module loaders. For example, let's say you write an angular directive in ES5. It obviously depends on angular, but there is nothing to say 'import angular before importing this directive'. jspm provides that functionality by adding a hint to the top of the file... `\"deps angular;\"` that SystemJS can use.\r\n\r\nSystemJS provides the `System` object, which makes `import` statements work under the hood through transpilation. It also handles the hints that jspm added. =)\r\n\r\nSystemJS bundler can read the config.js file and all your source code `import` statements and then bundle everything together into a single file (in the right dependency order) as well has handle minification and other fun stuff along the way."}}