部署到 Heroku 时的本地或私有 NPM 模块

Posted

技术标签:

【中文标题】部署到 Heroku 时的本地或私有 NPM 模块【英文标题】:Local or Private NPM module when deploying to Heroku 【发布时间】:2013-10-27 21:30:13 【问题描述】:

我有一个具有本地 npm 模块 npm link ./local 的节点应用程序,我正在尝试将该应用程序部署到 heroku。 Heroku 在我部署时运行 npm install,但 npm link 没有保存在 package.json 中,所以我的本地模块丢失了。

我是 heroku 和 Procfiles 的新手,我想在 heroku 框上运行一个脚本或只运行 npm link ./local

或者,我可以将模块作为私有存储库放在 github 上并从那里链接它。但据我所知,Heroku 无法下载私人回购。我可以通过密钥让 Heroku 访问我的 github 存储库,以便它可以下载它吗?

我想要某种解决方案!随便!

【问题讨论】:

【参考方案1】:

我认为您需要将模块放在 node_modules 文件夹中并将其推送到 heroku

Procfile 易于维护,heroku 会读取它

我有像

这样的示例 Procfile
web: bin/hubot -a campfire

甚至 heroku 也表示最好将 node_modules 包含到 repo 中,这样您就可以将本地包包含在其中。

在此处查看更多信息Heroku Node Deploy

【讨论】:

我想这可以解决问题。关于不忽略 git 的事情 npm_modules 让我的大脑放屁。 所以我不认为 git 正在关注我的 npm link aka symlink。我认为将我的实际代码放在node_modules 中并不安全。你知道如何解决这个问题吗? 所以我让它工作了,npm link 并没有像我想象的那样将它相对链接,所以我必须将cd 直接连接到node_modulelnnode_modules$ ln -s ../local_module/ ./local_module

以上是关于部署到 Heroku 时的本地或私有 NPM 模块的主要内容,如果未能解决你的问题,请参考以下文章

错误:找不到 npm 模块“时刻”

您可以使用 Heroku 部署由 json-server NPM 模块运行的假后端吗?

使用 Github 包作为 npm 节点模块时的 Firebase 云功能部署问题

在 Heroku 上每次部署后避免 npm refresh

Heroku:错误 - /bin/sh:1:npm:部署到 Heroku 时未找到

将 Ember.js 应用程序部署到 Heroku 时如何解决“无法下载节点 14.18.0”?