Как сделать поток работы автоматически каждый раз после пряжи? - PullRequest
0 голосов
/ 02 ноября 2018

Требуется проект Зависимость , которая требует B . И я хочу изменить код в B . Но каждый раз, когда я перезапускаю yarn (добавляем новую зависимость), все эти изменения откатываются.

Например: в моем реагирующе-родном проекте мне требовалось "react-navigation": "^2.0.1", а в react-navigation's package.json также требовалось "react-native-safe-area-view": "^0.8.0". Я изменяю некоторый код в react-native-safe-area-view/index.js, потому что сложно обновить реагирующую навигацию.

Другой пример: в том же проекте я изменяю некоторый код в RNCamere.m (Objective-C), который в node_modules/react-native-camera/ios/RN/RNCamera.m. Трудно обновить react-native-camera.

Но каждый раз, когда я добавляю новую зависимость (yarn add), все эти изменения откатывались. Поэтому я должен сделать то же самое снова. И мои партнеры также должны делать то же самое снова и снова.

Есть ли хорошие решения для оптимизации этого рабочего процесса? Я действительно не хочу делать ту же работу.

Я думаю, использование sed для изменения этих файлов каждый раз после пряжи - хороший способ, но я должен написать длинный длинный скрипт, чтобы это исправить. Любые другие предложения?

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Моя ситуация была такой: проект полагается на A, A полагается на B, A также полагается на C, и C также полагается на B.

node_modules:
  react-native-safe-area-view@0.8.0     -> B@0.8.0
  react-navigation@2.2.0                -> A
  react-navigation-tabs@0.5.0           -> C
    node_modules:
      react-native-safe-area-view@0.7.0 -> B@0.7.0

Мое решение было:

  1. разветвите эти три проекта на github
  2. git вернуться к версии тега
  3. изменить код, где необходимо изменить
  4. изменить А package.json на мерзавец + https://github.com/MYNAME/C.git/#mytag
  5. изменить B package.json на git + https://github.com/MYNAME/C.git/#mytag
  6. изменить А package.json на мерзавец + https://github.com/MYNAME/B.git/#mytag
  7. изменить package.json проекта на git + https://github.com/MYNAME/A.git/#mytag

Итак, проблема решена. Это тяжелая (плохая) попытка.

Вот подробности выпуска github: https://github.com/react-navigation/react-navigation/issues/5205

0 голосов
/ 02 ноября 2018

Вы должны сделать форк проекта react-native-safe-area-view в одном из ваших репо. Затем в вашем package.json добавьте что-то подобное в ваши зависимости:

"react-native-android-action-sheet": "git+ssh://git@url_of_your_fork/react-native-safe-area-view.git#v0.0.1",
...