2

问题

我正在尝试使用 patch-package 来修补 react-native package react-native-tab-view,但是当我为 react-native-tab-view 编辑 node_module 中包含的 TSX 文件并应用我的补丁时,这些更改不会反映在我的应用程序中。

node_modules/react-native-tab-view 的结构

下面是包结构的截图。 封装结构

他们还用于@react-native-community/bob在发布之前构建包,因此它会生成一个 lib 文件夹,其中包含一个模块文件夹和一个包含 JS 文件的 commonjs 文件夹。

我目前的数据

正在创建我的补丁,但是 /lib/module 中的文件不会更改,并且在模拟器上运行时更改也不会反映在我的应用程序中

在编辑 /src 中的 TSX 文件而不是模块 /lib/module 中的 JS 文件后,我尝试使用 patch-package 应用补丁,因为它实现起来要简单得多。

环境 react-native 0.63.0 补丁包 6.2.0 react-native-tab-view 2.15.1 react-native-gesture-handler 1.5.6 react-native-reanimated 1.7.0

问题 我是否缺少构建或编译步骤来获取 react-native-tab-view 以从我为其创建补丁的 TSX 文件生成新的 JS 文件?

任何帮助将不胜感激!

4

1 回答 1

2

通常当一个 npm 包发布时,它也会发布一个转译版本,因此您应该使用 patch-package 修改转译版本。

在 的情况下react-native-tab-view,转换后的版本位于lib文件夹中。

您可以通过检查 lib 来验证这一点package.json

  "main": "lib/commonjs/index.js",
  "react-native": "lib/module/index.js",
  "module": "lib/module/index.js",

更新

我的技巧是在本地克隆原始存储库,安装它的 deps,在源代码 ( src) 中修改您想要的任何内容,然后构建它,并将构建结果复制到包中的 node_modules,然后应用patch-package.

于 2020-08-31T17:19:14.027 回答