如何配置本地修改后的create-react-app以自定义创建React项目
如何配置本地修改后的create-react-app以自定义创建React项目
我完全懂你想把自己改好的create-react-app做成专属命令来初始化项目的需求,之前用yarn link没搞定确实闹心,我给你分享几个亲测有效的方案,一步步来肯定能成:
方案一:改包名+本地全局链接(最推荐,长期用)
这是最适合长期使用自定义命令的方式,解决你之前yarn link失效的关键是要把包的配置对应上:
- 打开你修改后的create-react-app根目录里的
package.json:- 把
name字段改成你想要的命令名,比如create-custom-react-app - 找到
bin字段,把里面的键也改成你的新命令名,比如原来的"bin": {"create-react-app": "./index.js"}改成"bin": {"create-custom-react-app": "./index.js"}(确保后面的路径还是指向正确的CLI入口文件)
- 把
- 在这个根目录里先跑一遍
yarn install(或npm install),确保依赖都同步好 - 接着运行
yarn link(或npm link),这步会把你的自定义包全局挂到本地环境里 - 现在随便找个空白目录,直接跑
create-custom-react-app my-awesome-app或者npx create-custom-react-app my-awesome-app,生成的就是你修改后的项目啦!
为啥之前yarn link没成功?
大概率是没改package.json里的name和bin键,导致link之后命令名还是原来的create-react-app,和官方包冲突了,或者系统找不到你的自定义命令。
方案二:直接用本地路径调用(临时用超方便)
如果只是临时测试修改后的效果,不想改包配置的话,直接在要创建项目的目录里跑:
npx /你本地修改后的cra项目的绝对路径 my-temp-app
比如你的cra在~/code/modified-cra,就跑npx ~/code/modified-cra my-temp-app,这样也能直接用你的自定义版本生成项目。
方案三:保留原命令名,强制用本地修改版
如果你不想改命令名,还是想用create-react-app,但要调用自己的修改版:
- 先把全局的官方包删掉:
yarn global remove create-react-app(或npm uninstall -g create-react-app) - 按照方案一的步骤把你的修改版cra link到全局(不用改name和bin,保持原来的)
- 之后跑
npx create-react-app my-app或者直接create-react-app my-app,用的就是你自己的版本了
额外注意点
- 要是之后想切回官方版本,直接跑
yarn global add create-react-app(或npm install -g create-react-app),会覆盖掉你link的本地版本 - 每次修改cra的代码后,不需要重新link,直接再运行创建命令就会用最新的修改
备注:内容来源于stack exchange,提问作者bbg
相关产品推荐
相关产品推荐

