According to Heroku当我要求Heroku构建我的项目时,我应该避免全局依赖。但我仍然希望Bower和Grunt在命令行上。
我的问题是:我应该如何运行这些工具?
我应该添加npm install -g
到node_modules
之类的路径,而不是用PATH
安装它们吗? (Ubuntu)
如果Grunt / Bower全局安装在开发机器上 - 当有人在项目上启动时,可能npm install -g grunt-cli
可能会为package.json
中的内容提供不同的Grunt版本。因此,Heroku运行以及开发人员运行的内容可能会意外地不同。
(或者这不太可能是个问题?)
答案 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,所以你不要这样做不得不担心。