当前位置: 首页 > 知识库问答 >
问题:

如何修改他人的库/模块?

吕琪
2023-03-14

我想添加一个卡组件到这个模块:https://snack.expo.io/@xcarpentier/gibrated-chat(演示)

例如,如果在Bubble Message上使用onLongPress(),我希望额外的信息出现(就在Bubble Message的正下方,作为一个小卡片,如Tinder Card)。

我该怎么做呢?我需要克隆源代码,然后修改它以适应我需要的吗?

共有2个答案

夏侯渊
2023-03-14

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

齐磊
2023-03-14

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

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

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

  1. 在您的终端中,导航到您修改的节点模块
  2. 创建一个全局符号链接npm link
  3. 导航到应用的根目录
  4. 使用npm链接模块名称
  5. 引用该符号链接

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

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

  1. 导航到要更改的包的Github回购
  2. 按右上角的Fork按钮
  3. npm在项目的根目录中安装git you-forked-repo-url(别忘了npm卸载旧的根目录)

现在,您可以按照坏解决方案中提到的过程在本地测试对该包的更改。在您对它们感到满意后,您可以将这些更改复制到您的分叉回购,并将其推送到Github(您将希望碰撞您的版本,但如果您想将更改与上游回购合并,您可能需要解决一些合并冲突)。然后再做一个你的回购的npm安装,使这些更改在你的node_modules文件夹中更持久。

如果你想了解你分叉的回购,Github在这里解释了这个过程。

选择更好的解决方案。

 类似资料:
  • WooCommerce是一款非常灵活的电子商务WordPress插件,喜欢它的原因很多,除了漂亮的界面、人性化的后台、很少的数据表等等,还有一个重要的原因是修改功能比较方便,比如修改WooCommerce的默认模版。 WooCommerce提供两种修改模版的方法,一个是通过钩子函数,这也是WordPress中最常见的修改方式;另一个方法是“覆盖”模版。 覆盖这种方式在WordPress插件中也比较

  • 一、简介  用于显示和修改用户个人信息。 二、功能演示 写入你的要修改的数据:真实姓名,E-mail,语言。 提交后,如提示成功则可完成修改操作,否则则提示错误消息。如下图所示:

  • 问题内容: 标题说明了一切。我在 SWIFT_MODULE_NAME 的构建设置中进行了 搜索 ,但没有发现任何问题。我也在网上搜索过,并且有对该名称的引用,但没有有关其定义的信息。 此外,我在Apple Docs中找不到任何提及SWIFT_MODULE_NAME的信息。 我确实知道这一点:它在“ Objective-C生成的接口头名称”构建设置中使用,并且可以通过双击设置值来查看: $(SWIF

  • 在我的Nativescript Angular 2 Typescript应用程序中,我希望有一个Nativescript加载任何包含html文本输入字段的远程网站(不受我控制)。 然后我想用我的NativeScript应用程序的值填充这些输入字段。 我以前在android studio中使用java完成过这项工作,在那里可以运行一些JS并修改webview的dom。但是,在没有运行特定于andro

  • 我想向jsonObject添加一个新字段,这个新字段的名称将基于另一个字段的值。明确地说,这是我想要实现的一个例子。 我想为每个json对象添加一个新的字段,它将以字段“stat”的值作为名称。 我尝试使用JsonPath库执行以下操作,但对我来说,这是一个难看的解决方案,因为我将解析json三次,并进行一些手动替换。 这是得到的结果 有没有更好的方法来达到这个结果呢?我试着用gson来做,但它不

  • 我有一个包含日期列的表。 早些时候,我以“7 / 8 / 2012”格式插入了日期值。- m/d/yyyy 我想以“07/08/2014”的形式更改此格式。- 月/日/年 我的表中有大约3000个条目。如何将此日期值更改为新格式。我试图使用“alter”命令和set,但无法批量更改它。