本地通过webpack搭建react环境
安装webpack和webpack-dev-server
| 1 |  | 
说明1: devDependencies是开发依赖,只会在打包过程中用到,不会包含到最后的代码中
说明2: 如果想安装指定版本的webpack,使用npm install –save-dev webpack@<版本号>格式
修改package.json
| 1 |  | 
devServer常用配置
/build/webpack.dev.conf.js
| 1 |  | 
创建好项目目录
项目根目录
│   package.json
├───node_modules
│       └╌╌ 下面是npm包
├───dist
│     └╌╌╌╌╌logo.jpg
├───build
│   ├╌╌╌╌╌ build.js
│   ├╌╌╌╌╌ webpack.base.conf.js
│   ├╌╌╌╌╌ webpack.dev.conf.js
│   └╌╌╌╌╌ webpack.prod.conf.js
├───src
│   ├╌╌╌╌╌ main.js
│   └╌╌╌╌╌tmp
│         ├╌╌╌╌╌home.js
│         ├╌╌╌╌╌about.js
│         └╌╌╌╌╌contact.js
│   └╌╌╌╌╌template
│         └╌╌╌╌╌daqi.html // 为hmtl插件的模板
│   └╌╌╌╌╌images
│         └╌╌╌╌╌logo.jpg  
打包
| 1 |  | 
会在dist目录下生成实际的页面
开启服务器
| 1 |  | 
不会在dist目录下生成实际的页面,会在内存中生成
使用HtmlWebpackPlugin插件生成首页
安装html-webpack-plugin插件
| 1 |  | 
加入react
方式一
直接在模板页面引入了三个库: react.min.js 、react-dom.min.js 和 babel.min.js
- react.min.js - React 的核心库
- react-dom.min.js - 提供与 DOM 相关的功能
- babel.min.js - Babel 可以将 ES6 代码转为 ES5 代码,这样我们就能在目前不支持 ES6 浏览器上执行 React 代码。Babel 内嵌了对 JSX 的支持。通过将 Babel 和 babel-sublime 包(package)一同使用可以让源码的语法渲染上升到一个全新的水平。
| 1 |  | 
注意这里的
| 1 |  | 
方式二
- npm install –save react 安装react。
- npm install –save react-dom 安装react-dom。
如果直接修改入口文件的main.js
| 1 |  | 
执行
| 1 |  | 
命令行会报错
| 1 |  | 
原因是需要安装babel来编译jsx
- npm install –save-dev babel-core babel-loader babel-preset-es2015 babel-preset-react babel-preset-stage-0 安装babel相关的包。(必需, 否则react中的语法会报错)
注意dependencies和devDependencies对应的就是–save和–save-dev
–save和–save-dev的区别(也就是dependencies和devDependencies的区别):
- –save: 项目上线运行仍然要用到的东西,比如react, 上线后仍然需要。
- –save-dev: 仅开发阶段所需要,比如webpack, 仅开发的阶段需要,项目上线之后并不需要。
修改webpack配置webpack.dev.conf.js
| 1 |  | 
loaders中的test, loader, exclude:
分别表示对于怎样的文件,用什么loader来处理, 除开哪些文件。图中的loader的意思是,对于node_modules以外的后缀名为js或者jsx的文件, 用babel-loader来处理。
至于为什么是后缀名为js或者jsx,这里是个正则,x后面跟的问号表示x出现0次或者1次。$表示结尾。
我们用babel-loader来处理后缀名为js或者jsx的文件,但是没有指明按照怎样的转码规则来处理这些文件,所以这里的presets指明的就是转码规则。
es2015: 用来编译es6语法
stage-0: 用来编译一些es7语法(还没定下来)
react: 用来编译react的语法
除了在上面使用query.presets之外,也可以在根目录下配置.babelrc
| 1 |  | 
创建babel的配置文件。在文件中写入:
| 1 |  | 
执行打包
| 1 |  | 
报错
| 1 |  | 
 是因为babel-loader版本过高
 当前是”babel-loader”: “^8.0.4”
 改为”babel-loader”: “^7.1.2”
 1
2npm i
npm run b
大功告成。
参考资料
webpack从零开始第1课:安装webpack和webpack-dev-server
webpack-dev-server配置项
webpack命令行各参数的用法
webpack-dev-server的配置
react安装-菜鸟教程
Webpack + React学习笔记(一) —— 准备