本地通过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学习笔记(一) —— 准备