{ "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
html
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$/, loader: 'babel-loader', exclude: /node_modules/ } ] }, watch: true }
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')); }
/* ./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 */ { "presets":[ "es2015", "react" ] }
Run code npm run dev
node