我花了很长时间研究当前的iOS React Native项目时遇到了一些问题。我决定重新开始。但是,我确实花了很多时间来确保我获得了各种反应本机模块的正确版本,并将其配置为可以工作。这些文件位于我的旧“ node_modules”文件夹中。
我可以将这些模块/文件夹(从旧的“ node_modules”中)复制到新项目中吗?我是否需要更新'package.json'或使用'react-native link xxxxx'的链接?和理论上的一样简单吗?
答案 0 :(得分:4)
您不需要复制到node_modules
目录,但是可以根据需要复制。由于您使用的是包管理器,因此只需要复制package.json
文件,也可以复制package-lock.json
(如果使用Yarn,则复制yarn.lock
)文件。然后,您可以运行npm install
(或yarn install
)将软件包安装到您的node_modules
目录中。
也可以复制package-lock.json
文件,以确保将先前项目中安装的所有软件包的完全相同的版本也安装在新项目中。有关package-lock.json
文件的更多信息,请参见this。
不幸的是,我对react-native和链接react-native依赖关系了解不多,但是从this answer看来,您必须在运行{之后再次链接任何包含本机代码的依赖关系{1}}。
答案 1 :(得分:2)
不,我不建议您从node_modules文件夹中复制特定的模块,因为一旦安装,它在.bin文件夹中的条目和文件将在复制时丢失,并且在新项目中将无济于事由于缺少索引而再次下载并安装。
解决方案:
如果确定其中的依赖项版本完全兼容或想要的依赖项版本,则可以在另一个项目中使用相同的package.json和package-lock,然后将这些依赖项安装在新项目中。 package-lock.json将确保您选择的版本。
是的,您可以将整个个node_modules(已完成多次)从一个项目复制到另一个项目,并使用相同的package.json和package-lock(仅在依赖项安装/中节省时间)/下载)
刚开始学习时,我建议创建一个新的package.json并仅复制那些对项目初始化非常重要的依赖项,并在进行过程中添加开发时需要的特定依赖项。这样可以避免您因未使用的依赖项而产生大量垃圾,一旦项目膨胀,这些依赖项就很难跟踪。