react-hot-webpack-boilerplate
1、建立项目目录,初始化项目
  | 
  | 
当使用npm init时,会让你输入各种项目信息,你可以一路回车。也可以直接使用npm init -y一键完成默认配置,你开心就好。
这时你的文件目录里面会出现一个package.json文件。
2、安装webpack到本地,将它作为项目依赖保存下来
  | 
  | 
这里说一下--save-dev和--save的区别:
首先,运行--save-dev时,依赖会安装在devDependencies键下。运行--save时,依赖会安装在dependencies键下。
--save是对生产环境所需依赖的声明。比如:开发应用中使用的框架,库。
--save-dev对开发环境所需依赖的声明。比如:构建工具,测试工具。
当使用npm install时,会下载dependencies和devDependencies中的模块。
当使用npm install --production或者注明NODE_ENV变量值为production时,只会下载dependencies中的模块。
我们可以通过运行下面命令来查看webpack的版本:
  | 
  | 
3、将项目目录结构设置为如下形式
- /src                                                // “源”代码是用于书写和编辑的代码
- index.js
 - Component.js
 
 - /build                                           // “构建”代码是构建过程产生的代码最小化和优化后的“输出”目录,最终将在浏览器中加载
- bundle.js (自动创建)
 - index.html
 
 - package.json
 - webpack.config.js
 
然后再运行:
  | 
  | 
就可以自动生成一个bundle.js文件。
4、更改webpack的配置文件
webpack.config.js
  | 
  | 
(1)entry(入口起点)
入口起点告诉 webpack从哪里开始,并遵循着依赖关系图表知道要打包什么。可以将您应用程序的入口起点认为是根上下文(contextual root)或 app 第一个启动文件。
单个入口
  | 
  | 
是下面的简写形式:
  | 
  | 
多个入口
  | 
  | 
每一个入口对应一个index.html。
(2)output(输出)
此选项影响 compilation 对象的输出。output 选项控制 webpack 如何向硬盘写入编译文件。
即使存在多个入口,也只能有一个出口。
单个入口:
  | 
  | 
多个入口:
  | 
  | 
5、在项目中安装react,react-dom
  | 
  | 
6、编写第一个程序
Component.js
  | 
  | 
main.js
  | 
  | 
index.html
  | 
  | 
7、安装babel相关依赖
安装 babel 依赖:
  | 
  | 
8、配置loader
因为react会使用es6语法,因此我们需要使用babel-loader将.jsx文件和es6语法转换为浏览器能识别的形式。
修改配置文件:
webpack.config.js
  | 
  | 
在根目录下新建一个.babelrc文件,用来存储使用的babel规则。
.babelrc
  | 
  | 
说明:
presets字段设定转码规则,官方提供以下的规则集,你可以根据需要安装。
  | 
  | 
然后,将这些规则加入.babelrc。
  | 
  | 
注意,以下所有Babel工具和模块的使用,都必须先写好.babelrc。
9、配置服务启动程序
为了启动程序时更方便,尽使用npm start就能启动程序。我们可以利用如下配置来完成:
首先安装webpack-dev-server
  | 
  | 
然后更改package.json文件:
  | 
  | 
更改webpack.config.js文件:
  | 
  | 
这个时候就可以用npm start运行了。
10、加载css和文件
  | 
  | 
webpack.config.js
  | 
  | 
11、安装一些插件来优化开发环境
(1)HtmlWebpackPlugin
实时构建index.html文件,这就是说,它会用新生成的 index.html 文件,把我们的原来的替换。
  | 
  | 
webpack.config.js
  | 
  | 
.babelrc
  | 
  | 
(2)clean-webpack-plugin
每次构建前清理/build文件夹,保留会使用的文件,清除已经不需要的文件。
  | 
  | 
webpack.congfig.js
  | 
  | 
.babelrc
  | 
  |