Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在项目之间共享React组件,同时将源代码保留在其中一个项目中_Javascript_Reactjs_Npm - Fatal编程技术网

Javascript 在项目之间共享React组件,同时将源代码保留在其中一个项目中

Javascript 在项目之间共享React组件,同时将源代码保留在其中一个项目中,javascript,reactjs,npm,Javascript,Reactjs,Npm,我正在寻找一种在两个项目之间共享React组件(及其流类型和SCS)的方法,同时将组件的源代码保留在其中一个项目中。然后,第二个项目将以只读方式使用另一个项目中的组件 但是,由于主项目位于Git存储库的一个目录中,因此我无法将NPM依赖项添加到第一个项目的第二个项目中(第一个项目中的package.json不在根Git目录中) 目前,我发现的唯一选择是使用一个脚本,手动将所有代码从第一个项目的目录复制到另一个项目。但是,我想知道是否有更“标准”的方法来实现这一点。尝试使用git子模块。给你 假设

我正在寻找一种在两个项目之间共享React组件(及其流类型和SCS)的方法,同时将组件的源代码保留在其中一个项目中。然后,第二个项目将以只读方式使用另一个项目中的组件

但是,由于主项目位于Git存储库的一个目录中,因此我无法将NPM依赖项添加到第一个项目的第二个项目中(第一个项目中的
package.json
不在根Git目录中)


目前,我发现的唯一选择是使用一个脚本,手动将所有代码从第一个项目的目录复制到另一个项目。但是,我想知道是否有更“标准”的方法来实现这一点。

尝试使用git子模块。给你

假设您有Project1,并且希望在Project2中使用它。 为了简单起见,在Project2的根目录中添加
.gitmodules
文件。该文件中包含以下内容:

[submodule "src/project-1"]   //you can change the path to wherever you want to put the Project1 inside Project2
   path = src/project-1   //same as above mentioned path
   url = git@github.com/your-project-1-repo.git
   branch = master //branch of Project1 that you want to use, usually in the master
然后,在Project2中运行此命令

git submodule init
当您在Project1中有更改时,只需运行

git submodule update --remote

在您的项目2中,要更新您在项目2中使用的项目1,您可以将其作为NPM依赖项,并从中导入,即使它是嵌套的。实际上,如果您使用的是webpack(或任何模块绑定器),那么您的应用程序可能完全不知道包实际驻留在哪里

git submodule init

总之:不需要将此组件作为package.json的
main
。它出现在
节点_模块中
使其可用。您的模块绑定器可以通过配置轻松导入。可以使用git控制版本,并支持用于安装包的git URL的NPM/Thread。

为什么不在单独的(私有的)文件中提取React组件npm库,并将其作为依赖项安装在两个项目中+支持将来可能使用它的项目?或者您可以尝试使用包的本地路径查看官方文档: