一个git仓库中的多个模块; 只有一个模块需要部署到Heroku

我有一个项目,目前有2个npm模块。 一个模块将在Heroku上运行,而另一个模块将运行在客户端上。 这两个模块都是用Node编写的。 现在,他们在不同的回购协议,但我想把他们在同一个回购。

他们是彼此独立的,但devise为彼此交互,所以我想他们在同一个回购,因为他们是同一个项目的组成部分。

问题是Heroku推动回购中gitignore文件不会忽略的所有内容,但是我不希望客户端模块只能放在服务器上。

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

也许与Git子模块或其他方式?

这听起来像你想打破12因素架构( http://12factor.net/ ),我不会推荐。 如果模块实际上是独立的,它们的来源应该分开维护,而不是在相同的回购中。

不过,你可以做你想做的事情。 把你想保留的包放到package.json的“dependencies”列表中,并把其他包放到package.json的“devDependencies”列表中。 使用Heroku默认的NPM_CONFIG_PRODUCTION=true设置,将不会安装“devDependencies”。

此外,请记住,有一个额外的模块“躺在服务器上”不是一个问题。 除非你require这个模块,否则它不会在运行时影响内存,所以你的应用程序无论是否在文件系统上都可用,其行为都是一样的。