Next.js 11环境下如何从GitHub仓库安装rsuite依赖并解决文件缺失问题
安装文件不全的原因
rsuite 官方Git仓库仅存储未编译的源码,发布到npm平台的包是经过构建流程生成了完整的编译产物、类型声明文件后的版本。你直接通过Git地址安装依赖时,npm/yarn只会拉取仓库内的原始文件,不会自动执行构建流程,且仓库默认的.gitignore规则会排除dist、lib等构建产物目录,因此安装后只有部分源码文件,无法正常使用。
解决方案
方案1:基于Fork仓库自定义修改(适合需要长期维护自定义版本的场景)
- 首先Fork rsuite官方仓库到你的GitHub账号下,将Fork后的仓库克隆到本地:
git clone https://github.com/你的GitHub用户名/rsuite.git - 切换到和你当前使用的rsuite版本对应的分支,完成你需要的组件修改
- 在rsuite项目根目录执行依赖安装和全量构建命令:
npm install npm run build - 删除rsuite项目.gitignore文件中dist、lib等构建产物目录的忽略规则,将你的代码修改和构建后的产物全部提交、推送到你自己的Fork仓库对应分支
- 回到你的Next.js 11项目,卸载原有rsuite依赖后执行安装:
npm install https://github.com/你的GitHub用户名/rsuite.git#你的自定义分支名,此时安装的依赖就包含完整的可用文件
方案2:使用patch-package打补丁(适合小范围修改的场景,无需维护Fork仓库)
如果你的修改量不大,更推荐用这个更简便的方案:
- 先正常从npm安装对应版本的rsuite:
npm install rsuite@你当前使用的版本号 - 安装patch-package工具作为开发依赖:
npm install patch-package --save-dev - 直接在项目的node_modules/rsuite目录下找到对应组件的代码,完成你的修改
- 执行命令生成补丁文件:
npx patch-package rsuite,执行完成后项目根目录会生成patches文件夹,里面存储你对rsuite的修改补丁 - 在你的项目package.json的scripts字段中添加钩子:
"postinstall": "patch-package",后续每次执行npm install都会自动应用你的补丁,修改不会丢失
参考图片

内容的提问来源于stack exchange,提问作者sharshaka
相关产品推荐
相关产品推荐

