每次纱后如何自动执行工作流程?

时间:2018-11-02 11:15:03

标签: node.js reactjs react-native npm yarnpkg

项目需要依赖项,需要 B 。我想在 B 中更改一些代码。但是每次我重新运行yarn(添加新的依赖性)时,这些更改都会全部回滚。

例如:在我的 react-native 项目中,我需要"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来更改这些文件是一个好方法,但是我必须编写冗长的脚本来对其进行修复。还有其他建议吗?

2 个答案:

答案 0 :(得分:0)

您应该在您的一个仓库中创建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",

答案 1 :(得分:0)

我的情况是:项目依赖于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. 将A的package.json修改为git + https://github.com/MYNAME/ C .git /#mytag
  5. 将B的package.json修改为git + https://github.com/MYNAME/ C .git /#mytag
  6. 将A的package.json修改为git + 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