前言:简单搭配react开发环境,可以clone本地执行以下命令查看效果。
npm install
npm run dev
npm i react react-dom babelify --save
npm i babel-preset-es2015 babel-preset-react --save (这是为了在代码中使用ES6和JSX)
目录结构,在根目录创建一个src目录,来放源代码,在src的js创建一个index.js入口文件
此时项目是运行不起来的,因为上面的包需要webpack来编译,否则识别不了jsx和require语法

npm webpack webpack-dev-server -g
npm webpack webpack-dev-server -save
webapck4.0版本要安装webpack-cli才可以使用webpack命令。
需要安装babel-loader,用来解析es6语法等,
此时的package.json
安装babel-loader之后,需要再根目录创建一个.babelrc的文件,配置一下内容,才可以解析

在热加载之前,每次修改index.js中的内容就需要再webpack编译一次,这样很麻烦,而热加载就能再修改代码的同时自动刷新浏览器
命令行直接输入webpack-dev-server,就可以实现自动刷新(这是iframe模式)
但是需要将本地index.html的js链接改为http://localhost:8080/bundle.js,才可以(因为本地是不改变的,编译的是虚拟的)。
参考:相关devServer问题
webpack配置
上面的热加载是通过命令行实现的,为了方便,我们把它写进配置

然后把package.json中的script改为
"dev": "webpack-dev-server --config webpack.config.js"
然后启动npm run dev来编译,成功启动了热加载

先安装npm i html-webpack-plugin --save
然后配置webpack.config.js文件
new HtmlWebpackPlugin({
title: 'React Demo',
template: path.resolve(__dirname, 'index.html')
})














