mkdir react-demo cd react-demo
npm install --save react react-dom npm install --save-dev webpack
简单的weback配置以下:css
const webpack = require('webpack'); const path = require('path'); const HTMLWebpackPlugn = require('html-webpack-plugin'); const CleanWebpackPlugin = require('clean-webpack-plugin'); module.exports = { entry: './src/index.js', output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist') }, devServer: { contentBase: './dist', hot: true }, plugins: [ new CleanWebpackPlugin(), new HTMLWebpackPlugn({ template: './index.html' }), new webpack.HotModuleReplacementPlugin() ], module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: [ 'babel-loader' ] }, { test: /\.css$/, use: [ 'style-loader', 'css-loader?modules&localIdentName=[path][name]---[local]---[hash:base64:5]' ] } ] }, devtool: 'inline-source-map', };
注意点:html
html-webpack-plugin,用于自动生成html文件,并将css与编译生成的bundle.js插入到生成的html文件中。另外,可配置template文件,将根据这个template文件来自动生成html文件,须要安装插件:node
npm install --save-dev html-webpack-plugin npm install --save-dev html-webpack-template
clean-webpack-plugin:每次编译时先将编译目录dist清空react
npm install --save-dev clean-webpack-plugin
webpack.HotModuleReplacementPlugin,这个插件的做用是,容许模块在运行时更新,页面不须要所有刷新webpack
style-loader、css-loader用于处理css文件,经过开启modules可启用CSS Modules,并设置样式类名es6
npm install --save-dev style-loader css-loader
css-loader?modules&localIdentName=[path][name]---[local]---[hash:base64:5]
安装webpack-dev-server,启用热加载web
npm install --save-dev webpack-dev-server
若使用jsx,须要编译jsx的工具,这儿使用babel,须要安装:npm
npm install --save-dev babel-core babel-loader babel-preset-react
若是使用es6,须要安装:json
npm install --save-dev babel-preset-es2015
而且,须要在根目录下新建.babelrc文件:redux
{ "presets": ["react", "es2015"] }
npm install --save-dev babel-plugin-transform-decorators-legacy
npm install --save-dev babel-plugin-transform-async-to-generator
最后,package.json文件以下:
{ "name": "react-demo", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "dev": "webpack-dev-server", "build": "webpack" }, "author": "", "license": "ISC", "dependencies": { "react": "^15.6.1", "react-dom": "^15.6.1" }, "devDependencies": { "babel-core": "^6.25.0", "babel-loader": "^7.1.1", "babel-preset-es2015": "^6.24.1", "babel-preset-react": "^6.24.1", "clean-webpack-plugin": "^0.1.16", "css-loader": "^0.28.4", "html-webpack-plugin": "^2.30.1", "html-webpack-template": "^5.6.0", "style-loader": "^0.18.2", "webpack": "^3.4.1", "webpack-dev-server": "^2.6.1" } }
经过设置“scripts”:
npm run dev
至关于执行webpack-dev-server
npm run build
至关于执行webpack