Как вы модифицируете чужую библиотеку / модуль? - PullRequest
0 голосов
/ 03 июня 2018

Я хочу добавить компонент Card в этот модуль: https://snack.expo.io/@xcarpentier/gifted-chat (демо)

Например, если вы используете onLongPress() в Bubble Message, я хочу, чтобы появилась дополнительная информация (справа)ниже этого сообщения пузыря, как маленькая карта, как Tinder Card).

Как мне это сделать?Нужно ли клонировать исходный код, а затем изменить его, чтобы он соответствовал тому, что мне нужно?

1 Ответ

0 голосов
/ 03 июня 2018

Хотя вы можете редактировать файл в папке node_modules, это не является хорошим долгосрочным решением.Почему нет?

  • Процесс не согласуется с использованием других модулей
  • Другой npm install перезапишет ваши изменения
  • Ваше решение не будет доступно кому-либоеще желая реализовать эту функцию

Плохое решение

Если вы все еще хотели бы пойти по этому пути, самый быстрый способ сделать это - связать его через npm.Если эта ссылка больше не доступна, вы можете связать модуль, выполнив следующие действия:

  1. В своем терминале перейдите к модулю узла, который вы изменили
  2. Создайте глобальную символическую ссылку с помощью npm link
  3. Перейдите в корневой каталог вашего приложения
  4. Ссылка на эту символическую ссылку с npm link name-of-module

Опять же, это непостоянное решение, и его следует использовать только для быстрого тестирования модификаций модуля.

Лучшее решение

Формирование репо - это хороший способ сохранить коммиты, характерные для этого модуля, и вы можете поделиться своимиизменения в сообществе открытого исходного кода.Некоторые причины для форка объясняются в справочной вики-странице Github, но сделать это довольно просто.

  1. Перейдите к репозиторию Github пакета, который вы хотите изменить
  2. Нажмите кнопку Fork в верхнем правом углу
  3. npm install git+your-forked-repo-url в корневом каталоге вашего проекта (не забудьте npm uninstall старый)

Теперь вы можете следовать процессу, упомянутому в Bad Solution , чтобы локально протестировать изменения в этом пакете.После того, как вы будете удовлетворены ими, вы можете скопировать эти изменения в свое раздвоенное хранилище и отправить их на Github (вам может понадобиться повысить вашу версию, но у вас могут возникнуть конфликты слияния, которые нужно разрешить, если вы когда-нибудь захотите объединить изменения срепо).Затем сделайте еще один npm install репо, чтобы сделать эти изменения более постоянными в папке node_modules.

Если вы хотите получать информацию о репо, с которого вы ответили, Github объясняет процесс здесь .

TL; DR

Выберите Лучшее решение .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...