太长不看的直接对照我写的demo项目的文档操作就行,文档最下面有介绍如何在其他项目中使用,手工修复的方法本文第三种方案有介绍。
个人写css样式更偏好less,奈何react脚手架默认只支持scss,如果直接引入less文件,不会看到任何样式效果(当然项目中提前安装好less和less-loader插件)。
先说第一种方法,脚手架中的npm run eject命令将暴露项目的所有配置文件到根目录,这样只需要执行npm install -D less-loader安装解析器依赖,然后更改.babelrc或者babel.config.js文件的配置就可以实现效果(取决于启用了那个文件的配置)。
但是eject命令是不可逆的,虽然可以在执行前将代码提交一份来曲线救国,但是对于后期维护不太有利。既然命令是将配置解开暴露到根目录,那么我们不执行命令,直接找的对应的配置文件修改了不就可以了吗?这就是第二种方法。
eject命令实际执行react-scripts eject,也就是react-scripts这个依赖项的自定义命令,在node_modules文件夹找到react-scripts后会发现一个文件
node_modules/react-scripts/config/webpack.config.js
只要安装上面参考地址的做法,对这个文件做出同样的修改,也就能在不执行eject命令的情况下达到目的了。
然而这样做又会引出另一个问题。一般情况下项目管理都不会将node_modules文件夹纳入监管列表,一旦别人需要拉取项目,运行后却丢失了所有样式,绝对会一脸懵逼。
既然如此,那我们就必须得在项目跑起来之前用准备好的文件替换依赖项的文件了。关于如何在NodeJS项目中自定义命令以及文件拷贝等问题这里就不再赘述,有兴趣的可以查看以下链接: