React is popular enough that I don't really need to explain what it is. Let me quickly go over couple tools we need to get React working. I assume that you have npm installed. The choice of modern JS syntax is ES7 and TypeScript for this article.
Babel Loader
JavaScript development touches a lot of diverse environments: Node, Chrome, Safari, etc. These various environments have different levels of compatibility with advanced JavaScript features like JSX and ES7. To ensure that our JSX and ES7 code works in any environment, we will use a transpiler called Babel to convert our code into ES5, the universal, vanilla JavaScript compatible with all browsers and Node.
Configuration
Webpack can be configured to transpile your JSX and ES7 source code into browser-compatible JavaScript when creating the bundle.
Here's a little tricky thing about using the latest ES7 feature, which is async and await. You will need @babel/polyfill to convert those new syntax into appropriate JavaScript to run on a browser. Within your source code, make sure to do the following if you happen to use async/await in your code.
import'@babel/polyfill'
TS Loader
TS loader is similar to Babel loader; instead of transpiling ES7 JavaScript source code, it transpile TypeScript source code into ES5 JavaScript!
npm install ts-loader typescript --save
Configuration
The configuration is more or less the same except using ts-loader.