以Heroku为基础 - 保持全局依赖关系

时间:2016-09-30 11:05:25

标签: node.js heroku

According to Heroku当我要求Heroku构建我的项目时,我应该避免全局依赖。但我仍然希望Bower和Grunt在命令行上。

我的问题是:我应该如何运行这些工具?

我应该添加npm install -gnode_modules之类的路径,而不是用PATH安装它们吗? (Ubuntu)

如果Grunt / Bower全局安装在开发机器上 - 当有人在项目上启动时,可能npm install -g grunt-cli可能会为package.json中的内容提供不同的Grunt版本。因此,Heroku运行以及开发人员运行的内容可能会意外地不同。

(或者这不太可能是个问题?)

1 个答案:

答案 0 :(得分:1)

最佳做法是将所有内容保存在本地,使用npm install --save。 这样,您只需调整package.json文件即可为团队中的每个人调整版本。

如果您只需要在您的开发环境中使用Bower和Grunt等,请使用npm install --save-dev进行安装。这将导致它们保存在package.json的devDependencies部分中。其中引用的依赖关系不会分发到生产(例如Heroku),但可以在所有开发环境中使用。

如果你真的需要Bower和Grunt等在Heroku上可用,那么用npm install --save安装它们。

无论如何,npm应该自动保存目录node_modules / .bin中的可执行文件(例如grunt-cli)的符号链接,并且应该注意将node_modules / .bin添加到PATH,所以你不要这样做不得不担心。