如何从共享的组件文件夹中导入不同的应用程序?反应/本机反应

时间:2020-01-11 14:57:27

标签: javascript reactjs react-native import

我目前正在一个项目中,我们必须制作2个移动应用程序。我们决定使用react-native来构建这些应用程序,以便我们可以利用跨平台功能。

然后,我们概述了项目结构。在这两个应用程序的UI设计中,大多数组件完全相同,只是颜色有所变化。

所以这就是为什么我们决定两个应用程序都必须从一个文件夹导入(灵活)组件。

项目结构

- mobile
    - project 1
    - project 2

必须看起来像下面两种解决方案之一

- components
- mobile
    - project 1
    - project 2

- mobile
    - components
    - project 1
    - project 2

'

问题

因此,当我尝试从项目1或2外部导入组件时,就会出现问题。例如,我创建了一个可用于两个项目(应用程序)的Loading组件。但是该组件使用第三方库,并且该库需要Pod安装才能安装一些其他库。

问题:

  1. 我应该在哪里安装第三方库(纱线添加)。在文件夹组件中,还是在两个项目文件夹中?
  2. 如果将其安装在components文件夹中,则由于该项目目录中未添加任何内容,因此无法运行Pod安装。
  3. 如果我尝试从项目目录之外的components文件夹中导入组件,则会收到“无法解析模块..”错误。

我认为react-native不鼓励我们从项目目录外部导入组件,因此会出现错误。但是,我仍然希望这种方法能够正常工作,这样可以更好地组织起来并提高效率。

有人在这种领域有经验吗? 如何解决此问题?有什么可能的解决方案

我已经阅读了其他StackOverflow帖子,但仍然无法弄清楚。对我来说仍然不清楚。

1 个答案:

答案 0 :(得分:1)

如果要在两个离散项目之间共享组件,常见的解决方案是按照jmargolisvt在其评论中建议的方式创建自己的NPM库。

但是,将更改发布到组件库中会增加一些开销。如果您需要快速移动,则可以通过直接从Github安装来将组件库安装到项目中。有关以下内容的npm install语法,请参见NPM的文档:https://docs.npmjs.com/cli/install

无论哪种方式,您的结构最终都将如下所示,并且您将能够像其他npm模块一样导入共享组件。

app-ios
  - depends on app-component-library
app-android
  - depends on app-component-library
app-component-library