通过修改react-scripts来自定义create-react-app的模板

create-react-app是一个无需任何配置就能轻松创建react应用使用的命令行工具,它主要是使用react-scripts来配置需要的webpackbabel等一系列工具。

react-scripts创建的应用可以满足大部分的需求,但是有时候我们需要修改或者创建自己的配置项。react-scripts提供了一个命令eject,使用eject命令可以将react-scripts内置的各种配置项暴露出来,这时候我们就可以通过更改配置文件。

eject可以让你自定义所有配置项。但是如果有很多相似的项目,建议fork一份react-scripts和其他需要的packges,做一个自己的模板使用。

自定义create-react-app的模板

Fork create-react-app

打开create-react-app,fork出自己的一份create-react-app

建议fork一个稳定的分支,master不是稳定的。

packages目录里,有一个目录react-scriptsreact-scripts这个目录里包含了buildteststart你的react app的脚本。

修改配置

把我们fork好的create-react-app clone到本地,checkout一个稳定版的tag,打开react-scripts/scripts/init.js这个文件。

在里面加一行console.log('Hello world.');

把我们自定义的react-scripts发布到NPM

先把react-scripts目录下的package.json文件里的name等字段的值改成我们自己的。

现在从命令行切换到react-scripts目录里,使用npm publish命令行进行发布。如果npm提示你登陆,就登陆上自己的npm账号。

测试我们自己的react-scripts

在命令行中使用我们自己的模板创建一个react-app

create-react-app test-app --scripts-version shengoo-react-scripts

可以看到,我们的增加的那行console.log生效了。

接下来就可以通过修改react-scripts增加我们自己需要的功能了。