10

我有一个要部署到 Heroku 的 Node 应用程序。他们的文档说最好检查您的node_modules目录(即不要gitignore 它),以便更快地部署和开发/生产奇偶校验。

在我的package.json中,我有很多devDependencies(主要是 Grunt 插件和他们的所有部门)和一些dependencies像 Express 一样的常规产品。Heroku 只需要生产部门。我宁愿不检查我所有的开发部门,因为它们大约有 50MB。

有没有办法为您的开发部门提供一个单独的文件夹,例如node_modules_dev?如果这是可能的,那么我可以添加node_modules_dev到我的, 并按照 Heroku 的建议.gitignore检查常规生产目录。node_modules

有没有办法做到这一点?或者你能想出另一种方法来做我想做的事吗?

4

2 回答 2

4

我使用 CI 服务器来构建、测试和部署我的文件——所以我一直在寻找一个类似的解决方案,它可以防止我需要部署额外的依赖项和/或在 Heroku 上重新构建。

在我的所有测试运行之后,我运行npm prune --productiondevDependencies ,它从中删除node_modules,然后我将结果推送到 Heroku。

没有额外的文件进入服务器,部署时间也快得多,因为 Heroku 避免了构建通常在 Gulp/Grunt 插件中找到的所有二进制文件。

于 2015-09-07T17:05:31.797 回答
1

如果您不介意检查它们,并且您唯一关心的是生成的 slug 大小(即:不是您的 git repo 大小,或者将该 repo 转移到 Heroku),那么只需将相关的 node_modules 添加到.slugignore.

文档:使用 .slugignore 忽略文件

于 2013-09-12T19:37:45.223 回答