我正在使用Card
中的react-native-elements
,并且摆脱了
{image && ..... <BackgroundImage .....
部分是因为我想在下载图像之前添加一个占位符图像(活动指示器),以便在图像淡入之前我不会只是看到空白区域。
无论如何,我用另一个组件替换了该部分,但它碰到了我-我的.gitignore
忽略了/node_modules
。如果我要像对Card
那样进行更改,然后购买新计算机并克隆我的存储库,则运行npm install
不会给我npm模块所做的更改。
我该如何解决?我不想推送整个node_modules目录。另外,我考虑过只基于Card
来制作自己的组件,但是它有太多的依赖关系和导入,如果我不打算解析和复制到我的项目中,我也不想参与其中。必须。
答案 0 :(得分:1)
由于所描述的原因,您永远不要对node_modules进行更改,您的更改只是临时的,如果您决定更新依赖项,您的更改将丢失。
根据您更改代码的原因,您可以执行其他操作:
如果要进行持久化更改,则必须基于自己的库(假设他们的许可证允许您这样做),这是一个非常糟糕的选择,您将丢失所有自动更新,并且错误修复。
您应该做的是建议,应该在其组件上构建一个包装器组件,在这种情况下,您将不添加任何新的依赖项(除非您决定构建,否则它们将始终使用这些依赖项)从头开始使用它们的依赖关系创建组件,在这种情况下,这不是包装程序组件,而是一个全新的组件,如果可以包装它们的组件来实现所需的功能,则避免使用此选项)
答案 1 :(得分:0)
我们已通过创建update_note_modules.sh(shell可执行文件)文件并在每次安装npm / yarn后运行此文件来解决此问题
步骤1:将代码副本从node_modules保存到主应用程序文件夹中。我们已经创建了“核心”文件夹,并将副本保存在其中
第2步:创建update_note_modules.sh文件
文件代码
echo "Updating react-native-dropdownalert"
cp core/react-native-dropdownalert/DropdownAlert.js node_modules/react-native-dropdownalert/DropdownAlert.js
echo "node_modules updated"
注意:路径将根据您的项目而改变
第3步:每次安装npm / yarn后运行update_note_modules.sh
只需将文件路径粘贴到终端中,然后按Enter键即可执行文件
/path to file/update_note_modules.sh
答案 2 :(得分:0)
我会在这里推荐https://github.com/ds300/patch-package;制作补丁并将其一致地应用于node_modules中的事物。对于从未推送到某些版本的软件包的修复程序通常很有用。