npm init -y
The above command will create a package.json file with default yes to all the project settings we need to type.
npm i -S react
npm i -S react-dom
the above will download the modules to node_modules subfolder and add entry to the "dependencies" section of package.json file created by init command above.
npm i -D webpack
The webpack is used for local development, a mini server kind of.It will generate a file bundle.js to generate the functionality.
same as -S but will add entries to "devDependencies".The difference is, these modules only for local development, they won't get installed on the server when deployed.
npm i -D babel-core
npm i -D babel-loader
npm i -D babel-preset-react
npm i -D babel-preset-es2015
The above modules are for converting es6 syntax of javascript to old syntax as many browsers doesn't support es6.
package.json file created.
{
"name": "t",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"react": "^16.13.1",
"react-dom": "^16.13.1"
},
"devDependencies": {
"babel-core": "^6.26.3",
"babel-loader": "^8.1.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1",
"webpack": "^4.44.2"
}
}
create files as below structure.
src\App.js
webpack.config.js
index.html
//webpack.config.js webpack.js ------------ var webpack = require("webpack"); var path = require("path"); module.exports = { entry:{ app: "./src/App.js" }, output:{ filename:"build/bundle.js", sourceMapFilename: "build/bundle.map" }, devtool: '#source-map', module: { loaders: [ test: /\.jsx?$/, exclude: /(node_modules|bower_components)/, loader: 'babel-loader', query:{ presets:['react','es2015'] } ] } }
App.js
//shortcut rcom<tab> import React, {Component} from 'react'; import ReactDOM from 'react-dom'; class App extends Component{ render(){ return( <div> Cool react App </div> ); } } ReactDOM.render(<App />,document.getElementById('root'));
Now, before creating index.html we need to convert the es6 to old javascript.
<body> <div id='root'></div> <script type="text/javascript" src="build/bundle.js"></script> </body>
No comments:
Post a Comment