我可以开发一个节点模块作为 GIT 子模块吗

Posted

技术标签:

【中文标题】我可以开发一个节点模块作为 GIT 子模块吗【英文标题】:can I develop a node module as GIT submodule 【发布时间】:2016-11-20 14:54:35 【问题描述】:

我已经创建了一个 GIT 存储库,我将在那里开发几个节点模块。

所以我从我的第一个节点模块(modA)开始。并在其下创建了一个文件夹(子模块)。

 https://github.com/<username>/<reponame>/modA

我在那里添加了一个简单的 REAME。

现在在我的本地机器上,我去了一个项目/node_module,然后运行这个命令。

 git clone 'https://github.com/<username>/<reponame>/modA

我收到这个错误

fatal: repository 'https://github.com/enraiser/node/enMailer/' not found'

我尝试了 git submodule add 但也失败了。

所以我的问题是。是否所有节点插件都必须是存储库?还是我没有使用正确的 GIT 命令。

【问题讨论】:

【参考方案1】:

您刚刚在存储库中创建了一个文件夹。它不是子模块。 所以你的 repo url 是 git@github.com:enraiser/node.git(使用 SSH)或 https://github.com/enraiser/node.git(使用 HTTPS)。

如果你想创建你的节点模块作为你的主存储库的 git 子模块,那么你需要 首先为每个模块创建单独的存储库,然后使用它们的 url 将它们添加为子模块。

假设你已经创建了 enMailer repo 并且你有 &lt;enMailer-url&gt;:

cd /local/path/to/your/repo
git clone git@github.com:enraiser/node.git .
rm -rf enMailer
git submodule add <enMailer-url> enMailer 
git add .
git commit -m 'submodule enMailer added'
git push origin master

P.S. 这是给您的屏幕截图(您可以在 github 上获得正确的存储库 url):

【讨论】:

感谢您解释子模块。我想在列表中我可以继续前进。 从 NPM 角度来看的任何 cmets。为什么我可以将节点模块作为 GIT 中的文件夹? @enRaiser 不确定我是否理解正确...是否需要创建 git 子模块?如果您希望您的模块可以通过npm 单独访问以进行安装,那么可以,它们都应该在自己的存储库中。然后你可以这样安装它们:npm install &lt;module-url&gt; 我认为子文件夹还是比子模块好。但是如果 NPM 有什么技巧的话。否则,正如你所说,我必须使用子模块。 @enRaiser 另一个问题是为什么你需要这个包含你的节点模块作为 git 子模块的公共存储库?

以上是关于我可以开发一个节点模块作为 GIT 子模块吗的主要内容,如果未能解决你的问题,请参考以下文章

子模块内的 Git 子模块(嵌套子模块)

在托管 git 子模块的 docker 中使用 Yarn

git子模块的使用

单个文件作为 Git 子模块

Git子模块的本地导入错误 - Python

Git 子模块 - submodule