是否可以为devDependencies设置单独的node_modules文件夹?

时间:2013-07-29 16:16:06

标签: node.js heroku node-modules

我有一个我正在部署到Heroku的Node应用程序。他们的文档说check in your node_modules directory是最好的做法(即 gitignore),以便更快地部署和开发/生成奇偶校验。

在我的package.json中,我有大量devDependencies(主要是Grunt插件及其所有deps)和一些常规制作dependencies,如Express。 Heroku只需要生产代表。我宁愿不检查所有的开发设备,因为它们大约有50MB。

是否有某种方法可以为您设置单独的文件夹,例如node_modules_dev?如果可以,那么我可以将node_modules_dev添加到.gitignore,并按照Heroku的建议检查常规生产node_modules目录。

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

2 个答案:

答案 0 :(得分:3)

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

运行完所有测试后,我运行npm prune --production,从devDependencies中移除node_modules,然后将结果推送到Heroku。

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

答案 1 :(得分:1)

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

文档:Ignoring files with .slugignore