create-react-app作为最常用的react脚手架集成了很多的常用功能,比如支持es6、JSX、动态import、Fetch(polyfill)、proxy、postcss、eslint等。但也有些功能并没有提供支持比如Hot-reloading和css预处理器,所以我们需要自定义配置这些功能。
首先需要npm run eject进行自定义配置。
配置proxy
在package.json中添加proxy字段。
1 | "eslintConfig": { |
在index.js
中实验一下代理的功能。
1 | registerServiceWorker(); |
然后运行yarn start
打开控制台看下打印的日志,如果成功就会看到请求到的数据了。
配置css的预处理器sass
首先需要安装对应的loader
.
1 | yarn add sass-loader node-sass --dev |
然后在修改dev
环境的配置,在如下代码所试的地方
1 | test: /\.css$/, |
改为下面的代码
1 | test: /\.(css|scss)$/, |
然后在use
规则的结尾加上一个loader
如下`
1 | { |
然后修改生产环境下的方法同上。
配置模块热更新
模块热跟新就是不刷新页,需要更新的模块自己跟新。首先我们需要安装所需要的模块,执行以下命令进行安装。
1 | yarn add react-hot-loader --dev |
然后在webpack.config.dev.js配置文件的入口配置中添加以下代码
1 | 'react-hot-loader/patch', |
然后在babel-loader
中添加一个plugins
.
1 | { |
然后在修改入口文件代码index.js
1 | import React from 'react'; |
这样就完成了热更新的配置。到此基本的自定义配置已经完成了。有新的需求在补充。