Javascript 如何在react中导入根路径之外的组件?
我有两份申请 项目A 项目B 这里的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
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工作过。。