HN Discussion link: https://news.ycombinator.com/item?id=12144371
Or you don't need all of that.
It's very, very rarely a different situation.
There's a single build tool (http://leiningen.org/), and it manages dependencies, tests, builds, etc. Things just work.
Setting up a new project is as simple as:
lein new reagent-frontend myapp
I can go and start developing it by running
lein figwheel
After it starts I can open the browser at localhost:3449 and any changes I make in the source will be immediately reflected. Once I want to package for release I just do:
lein clean lein release
That's it, I now have minified and pruned Js file that's ready for production.
npm i -g create-react-app
create-react-app my-app
cd my-app
npm start # start devserver
npm run build # build for productionnpm install -g create-react-app && create-react-app hello-world
I actually find it surprising that this is a Google project, if you just gave me the code/docs and didn't tell me what project it is I would have guessed this came from Microsoft (feels much more WPF/Silverlight like than GWT/Closure, hell it even uses Rx which came out of MS)
Angular 2 is shaping up to be a framework like no other out there in its capabilities.
Edit: I used NG1 a lot and liked it. But after trying NG2 I felt it to be really too complex for small to medium projects. Vue.js is what I hoped NG2 to become.
Here's an example: Human mortality sucks. However, since there is no alternative, complaining about it is an exercise in futility.
That's a bit like saying that the alternative to a roof is shingles.
What does "single page app" mean to you? The term is not a description of the amount of features.