Javascript 如何在react中导入根路径之外的组件?

Javascript 如何在react中导入根路径之外的组件?,javascript,reactjs,module,components,git-submodules,Javascript,Reactjs,Module,Components,Git Submodules,我有两份申请 项目A 项目B 这里的projecta只不过是一个简单的组件应用程序,它只包含普通组件 -> src -> components -> Button 这是我在项目a中使用的一个非常简单的按钮组件 现在的要求是,我需要在任何其他react应用程序中使用此通用按钮组件 在这个场景中,我需要在projectb中使用projecta中的按钮组件 为此,我在src/App.js项目B的文件中尝试了一些相对导入(我理解这是完全错误的),比如 impor

我有两份申请

项目A

项目B

这里的
projecta
只不过是一个简单的组件应用程序,它只包含普通组件

-> src
    -> components
       -> Button
这是我在
项目a
中使用的一个非常简单的按钮组件

现在的要求是,我需要在任何其他react应用程序中使用此通用按钮组件

在这个场景中,我需要在
projectb
中使用
projecta
中的按钮组件

为此,我在
src/App.js
项目B的
文件中尝试了一些相对导入(我理解这是完全错误的),比如

import {Button} from "../../../Project A/src/components
但它给出了预期的错误

Module not found: You attempted to import ../../../Project A/src/components which falls outside of the project src/ directory. Relative imports outside of src/ are not supported.
那么有谁能帮助我如何将
projecta
中的按钮组件包含在
projectb
中呢

注意:

我不能复制粘贴代码,而且严格来说,我只需要将代码从
project
导入
project

而且两个项目都位于一个文件夹下,如

->Folder
  -> Project A
  -> Project B

您需要跨项目创建可重用组件。 您可以使用Bit.dev创建可重用组件

有关详细信息,请从以下url中查找:

您需要跨项目创建可重用组件。 您可以使用Bit.dev创建可重用组件

有关详细信息,请从以下url中查找:
由于隐私是一个问题,我建议将其开发为一个库,而不是将其发布到npm,您可以使用git路径将其包含在您的
包.json
中。通过这种方式,您可以将lib推送到私有git repo,并保持所有内容的同步

步骤1

使用新的git存储库创建一个新项目(例如项目C)。安装程序应该类似于npm包,但您永远不会将其发布到npm。这只是为了进口

步骤2

将您要共享的所有组件从共享项目C中的项目A移动到您的私有git repo以“发布”所有更改

步骤3

调整项目A和项目B中的
package.json
,以包含新的项目C,这样两者都可以使用共享组件

-> src
    -> components
       -> Button
e、 g.
“包名”:“git+ssh://git@myorganization.com:/shared-project-c.git“

npm安装
/
纱线安装
之后,您可以像使用任何其他库一样使用您的组件

从“my-shared-project-c”导入{MySharedButton}

由于隐私是一个问题,我建议将其开发为一个库,而不是将其发布到npm,您可以将其包含在带有git路径的
包.json
中。通过这种方式,您可以将lib推送到私有git repo,并保持所有内容的同步

步骤1

使用新的git存储库创建一个新项目(例如项目C)。安装程序应该类似于npm包,但您永远不会将其发布到npm。这只是为了进口

步骤2

将您要共享的所有组件从共享项目C中的项目A移动到您的私有git repo以“发布”所有更改

步骤3

调整项目A和项目B中的
package.json
,以包含新的项目C,这样两者都可以使用共享组件

-> src
    -> components
       -> Button
e、 g.
“包名”:“git+ssh://git@myorganization.com:/shared-project-c.git“

npm安装
/
纱线安装
之后,您可以像使用任何其他库一样使用您的组件

从“my-shared-project-c”导入{MySharedButton}

对于相同的场景,我将向npm发布一个包,并将其用于不同的项目。或者只是复制粘贴组件。我猜他们处理的数据不一样。@SifatHaque,我不能复制粘贴。。如果这样做的话,我可能不会发布这个问题本身。。但这不是在npm中发布并使用它的东西,相反,我只需要从一个项目导入到另一个项目。对于相同的场景,我将向npm发布一个包,并将其用于不同的项目。或者只是复制粘贴组件。我猜他们处理的数据不一样。@SifatHaque,我不能复制粘贴。。如果这样做的话,我可能不会发布这个问题本身。。但这不是在npm中发布和使用的东西,而是我只需要从一个项目导入到另一个项目。我不明白你的意思,将其开发为一个库意味着我应该推动
projecta
的代码来分离github repo,并在
projectb
-
package.json文件中使用该github repo?您应该将其包含在两个项目中。我希望你在项目A中也需要它,因为它已经在这个项目中了。它基本上是一个包含所有共享组件的回购,就像你在大型mono回购中所做的那样。我需要包括至少一个按钮组件(尽管我有更多的组件,如navbar、loader等)从
项目A
内部
项目B
这是我的要求。很抱歉,我是新手,所以我以前没有在mono repos工作过..无法理解你的观点,将其开发为一个库意味着我应该推动
projecta
的代码来分离github repo,并在
projectb
-
package.json文件中使用该github repo?您应该将其包含在两个项目中。我希望你在项目A中也需要它,因为它已经在这个项目中了。它基本上是一个包含所有共享组件的回购,就像你在大型mono回购中所做的那样。我需要包括至少一个按钮组件(尽管我有更多的组件,如navbar、loader等)从
项目A
内部
项目B
这是我的要求。很抱歉,我是新手,所以我以前没有在mono repos工作过。。