node.js - 一个 git 存储库中的多个模块;只需要向 Heroku 部署一个模块

标签 node.js git heroku github

我有一个项目,目前有 2 个 npm 模块。一个模块将在 Heroku 上运行,而另一个模块将在客户端上运行。这两个模块都是用 Node.js 编写的。现在,它们位于不同的存储库中,但我想将它们放在同一个存储库中。

它们彼此独立,但旨在相互交互,因此我希望将它们放在同一个存储库中,因为它们是同一项目的组件。

问题是 Heroku 推送了存储库中未被 gitignore 文件忽略的所有内容,但我不希望客户端模块只是放在服务器上。

有没有办法告诉 Heroku 我只想部署一个 npm 模块,而不是另一个?

也许使用 git 子模块或其他方式?

最佳答案

听起来你想打破 12 因素架构 ( http://12factor.net/ ),我不推荐这样做。如果模块实际上是独立的,那么它们的源代码应该单独维护,而不是在同一个存储库中。

但是,您可以做您想做的事情。将要保留的包放入 package.json 的“依赖项”列表中,并将其他包放入 package.json 的“devDependency”列表中。使用 Heroku 的默认 NPM_CONFIG_PRODUCTION=true 设置,将不会安装“devDependencies”。

此外,请记住,“在服务器上放置一个额外的模块”不是问题。除非您需要该模块,否则它不会在运行时影响内存,因此无论您的应用程序是否在文件系统上可用,其行为都会相同。

关于node.js - 一个 git 存储库中的多个模块;只需要向 Heroku 部署一个模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31382530/

相关文章:

ruby-on-rails - 在 Heroku 上更新到 Rails 3.1 时的 Assets 管道

mysql - ClearDB 自增

node.js - Angular 6 错误类型错误 : Cannot read property 'navigate' of undefined

node.js - lodash isNil 不是一个函数

mysql - 在实时服务器上使用 Node Js 连接到 MySQL

Git:将master merge 到新分支并清除master

node.js - ffprobe 无法读取 AWS 上 Node JS createWriteStream() 生成的文件

git - 使用 Maven 发布插件将 ArtifactId 附加到 SCM Url

Git 错误 : previous rebase directory . git/rebase-apply 仍然存在但给出了 mbox

node.js - 是否可以每 *4 分钟* 在 Heroku 中运行一个 Node.js 应用程序?