package.json
{ "name": "giccoo","version": "1.0.0","main": "main.js","author": "Kelvin","license": "MIT","scripts": { "dev": "webpack-dev-server --devtool eval-source-map --colors --hot --inline --content-base ./dist","build": "webpack --colors" },"dependencies": { "path": "^0.12.7","react": "^16.0.0","react-dom": "^16.0.0","webpack": "^3.8.1" },"devDependencies": { "babel-core": "^6.26.0","babel-loader": "^7.1.2","babel-preset-es2015": "^6.24.1","babel-preset-react": "^6.24.1","html-webpack-plugin": "^2.30.1","webpack-dev-server": "^2.9.4" } }
Run code npm install
webpack.config.js
const path = require('path'); // const HtmlWebpackPlugin = require('html-webpack-plugin'); module.exports = { entry: ['./src/main.js'],output: { path: path.resolve('dist'),filename: '[name]-build.js' },module: { loaders: [ { test: /\.js$/,loader: 'babel-loader',exclude: /node_modules/ },{ test: /\.jsx$/,exclude: /node_modules/ } ] },watch: true }
main.js
import React from 'react'; import ReactDOM from 'react-dom'; import App from './components/App.jsx'; if (document.getElementById('root')) { ReactDOM.render(<App name="kelvin" />,document.getElementById('root')); }
App.jsx
/* ./client/components/App.jsx */ import React from 'react'; const TEMP = "nice" const MSUM = (i) => i + 1 export default class App extends React.Component { constructor(props) { super(props) console.log(`${TEMP} job!`,MSUM(5),props) this.props = props } render() { return( <div style={{textAlign: 'center'}}> <h1>Hello World {this.props.name}</h1> </div> ); } }
.babelrc
/* ./.babelrc */ { "presets":[ "es2015","react" ] }
Run code npm run dev