这是我想在概念上做的事情:
“ Hook ”node.js 到特定的 Git 存储库,这样我就可以发出类似/84de7e8d8ce33/foo 的请求,服务器将(如有必要)检查提交 84de7e8d8ce33,在它刚才的文件上启动另一个 node.js checkout ,并将“/foo”传递给该新服务器。当然,主服务器会跟踪它已经知道的提交。
基本上,我只是想简化我们的发布过程,所以执行上述 Git 魔法的同一台服务器也将提供一个类似 index.html 的文件,该文件几乎完全由
<script src="/84de7e8d8ce33/app.js"></script>
我的问题:
- 这个想法到底有多糟糕?
- 是否有一些现有技术、一些库或框架已经这样做了?
- 有替代方案吗?我有一个发布分支,告诉 node.js 要使用什么提交,然后放手。
- 是否有一些内置方法可以同时“ checkout ”多个提交(或至少以某种方式作为普通文件可见)?
(我有一个附属问题,关于如何从我作为发布经理向服务器传达 84de7e8d8ce33 现在是实时版本这一事实。现在,我在想,memcached,但我是开放的其他建议。)
最佳答案
这听起来一点也不坏。我会先尝试使用 https://github.com/libgit2/node-gitteh
除了有一个可爱的名字,它
- 应该比 git 更快
- 有一个javascripty API
我会在与 Web 服务器不同的进程中运行它,使用 node-redis 和/或 dnode 进行通信。
编辑:我找到了the docs ,列在自述文件的底部。不过,直到我看了一个示例并在 Node repl 中使用它之后!这很好。我能够四处寻找并从我的 repo 协议(protocol)中得到一个 blob。它也适用于 .git,而不是工作树,因此您可以进行多个可能的提交,而无需存储库的多个副本。
关于git - 使用 git 发布到 node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7017712/