npm 支持postinstall
可能正是您正在寻找的步骤(以及许多其他步骤)。
当您推送到 heroku 以解决构建依赖项时,node.js heroku buildpack 会运行此命令:
$ npm install --production
https://devcenter.heroku.com/articles/nodejs-support#build-behavior
如果您查看 npm 文档,您可以设置一系列脚本以在任何npm install
人为您的包运行之前或之后运行。它在 的scripts
属性中配置package.json
。该scripts
属性允许grunt
在包的生命周期中发生某些事情时运行自定义脚本(包括 )。
例如,要grunt
在任何人(包括 Heroku)运行时回显一些文本并运行命令npm install
,请将其添加到您的package.json
:
{
...
"scripts": {
"postinstall": "echo postinstall time; ./node_modules/grunt-cli/bin/grunt <your task name>"
},
...
}
https://npmjs.org/doc/scripts.html
重要警告:
- 您可能必须更改脚本中 grunt 二进制文件的路径,如果命令未执行
postinstall
,请检查错误输出。grunt
grunt
并且必须在您的grunt-cli
列表中列为 a ,以便由 Heroku 安装。在下面列出它们是不够的,因为 Heroku 不会安装它们。另外,请注意 Heroku 不会将其安装为全局包,因此要在 Heroku 上执行它,您将不得不使用相对路径(正如上面配置的那样)。dependency
package.json
devDependencies
如果这不起作用(您可能需要稍微调整一下相对路径),那么您可能需要考虑为 Heroku 编写自己的自定义 buildpack。
更新
从 0.4 开始,grunt
包不再包含grunt
二进制文件,它现在是grunt-cli
包的一部分。答案已更新以反映这一点。