Stack of Development Need - rohit120582sharma/Documentation GitHub Wiki
Package Management
Problem: Need to organize your project and your dependencies
Solution: NPM
Reason: NPM is pretty much the de-facto package manager
JavaScript flavor
Problem: ECMAScript 5 sucks
Solution: ES6 & TypeScript
Reason: Interesting new features: arrow functions, module import/export capabilities, de-structuring, template strings, let and const, generators, promises.
Transpiling
Problem: Many browsers that are still massively in use don’t implement ES6. You need a program that translates/transpiles your modern ES6 into equivalent, well-supported ES5.
Solution: Babel
Reason: Works perfectly and it’s pretty much the de-facto standard. Transpiles server-side.
Notes: You will use babel-loader, a Webpack loader
Linting
Problem: There’s a zillion ways of writing JavaScript and consistency is hard to achieve. Coding standards need to be maintained and some bugs can be prevented with a linter.
Solution: ESLint
Reason: Great code insight and very configurable.
Bundling
Problem: You are no longer using a flat file or sequence of files. Dependencies need to be resolved and loaded properly.
Solution: Webpack
Reason: Highly configurable. Can load all sorts of dependencies and assets. It’s pluggable. It’s pretty much the de-facto bundler for React projects.
Notes: You should also learn about babel-loader, style-loader, css-loader, file-loader, url-loader.
UI framework / state management
Problem: This is one of the big ones. SPAs have grown more and more complex. Mutable state is particularly troublesome.
Solution: Angular and Redux
Reason: Instead of separating by technology "HTML/CSS/JavaScript" you break things up by their functionality "cohesive components". Your UI is a pure function of your state.
Unit testing
Problem:
Solution: Karma & Jasmine
Styling
Problem: Now that you have proper modules, you want them to be self-contained, reusable pieces of software that you can move around. Component styles should be as portable as the components themselves.