我可以开发一个节点模块作为 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 并且你有 <enMailer-url>
:
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 <module-url>
我认为子文件夹还是比子模块好。但是如果 NPM 有什么技巧的话。否则,正如你所说,我必须使用子模块。
@enRaiser 另一个问题是为什么你需要这个包含你的节点模块作为 git 子模块的公共存储库?以上是关于我可以开发一个节点模块作为 GIT 子模块吗的主要内容,如果未能解决你的问题,请参考以下文章