8

I want to add a Card component to this module: https://snack.expo.io/@xcarpentier/gifted-chat (demo)

For example, if using onLongPress() on the Bubble Message, i want additional info to appear (right below that Bubble Message, as a small card, like Tinder Card).

How do I do that? Do I need to clone the source code and then modify it to fit what I need?

4

2 回答 2

16

尽管您可以编辑文件node_modules夹中的文件,但这并不是一个很好的长期解决方案。为什么不?

  • 该过程与使用其他模块不一致
  • 另一个npm install将覆盖您的更改
  • 想要实现该功能的其他人将无法使用您的解决方案

糟糕的解决方案

如果你仍然想走这条路,最快的方法是通过 npm 链接它。如果此链接不再可用,您可以按照以下步骤链接模块:

  1. 在您的终端中,导航到您已修改的节点模块
  2. 创建一个全局符号链接npm link
  3. 导航到应用程序的根目录
  4. 引用该符号链接npm link name-of-module

同样,这不是一个永久的解决方案,只能用于快速测试对模块的修改。

更好的解决方案

分叉 repo 是维护特定于该模块的提交的好方法,您可以将您的修改分享给开源社区。Github 帮助 wiki 中解释了一些分叉的原因,但这样做非常简单。

  1. 导航到您要更改的软件包的 Github 存储库
  2. 按下Fork右上角的按钮
  3. npm install git+your-forked-repo-url在项目的根目录中(不要忘记npm uninstall旧的)

现在,您可以按照错误解决方案中提到的过程在本地测试对该包的更改。在您对它们感到满意后,您可以将这些更改复制到您的分叉存储库并将它们推送到 Github(您需要提升您的版本,但如果您想将更改与上游回购)。然后做另一个npm install你的回购使这些更改在你的node_modules文件夹中更加永久。

如果您想及时了解您从分叉而来的 repo,Github 会在此处解释该过程。

TL;博士

选择更好的解决方案

于 2018-06-03T00:12:56.107 回答
0

我在这个stackoverflow 答案中找到了一个 IMO 更简单的解决方案 - 使用补丁包并且不需要分叉存储库。

于 2021-11-26T10:08:53.657 回答