Ну, стандартная процедура с git
- обновление из апстрима.Найдите исходный репозиторий для заинтересованного модуля npm
, клонируйте его в локальное хранилище, создайте отдельную ветку и внесите в него изменения.Каждый раз, когда вы обнаруживаете, что хранилище модуля npm
было изменено, вы обновляете основную ветку в своем локальном хранилище:
git fetch origin master:master
и объединяете мастер с вашей веткой:
git merge master # to the current branch
Или выможете выбрать rebase вместо слияния
git rebase master # rebase the current branch on top of master
Убедитесь, что ваши патчи применены правильно:
git diff master # compare the branch with master
В сценариях слияния и слияния возможны конфликты, если вышестоящий модуль изменил код в том же самомместа, где применяются ваши изменения.Обойти это невозможно, вам придется исправлять эти конфликты вручную.В любом случае, это гораздо меньше работы, чем копирование и исправление каждый раз.
Если модуль npm
не имеет доступного вам хранилища, создайте его самостоятельно.Создайте новое git
репо, получите код модуля и передайте его в репо в ветке master
.Создайте ветку с вашими патчами.Каждый раз, когда вы обнаруживаете, что вышестоящий код был изменен, вы скачиваете код и обновляете master
:
git checkout master
# Update code
git add -A .
git commit
git checkout your-patched-branched
git merge master # or rebase