npmは、postinstall(他の多くの中で)ステップをサポートしています。これはまさにあなたが探しているものかもしれません。
node.js heroku buildpackは、ビルドの依存関係を解決するためにherokuにプッシュすると、次のコマンドを実行します。
$ npm install --production
https://devcenter.heroku.com/articles/nodejs-support#build-behavior
npm installnpmのドキュメントを見ると、パッケージの実行前または実行後に実行する一連のスクリプトを設定できます。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
gruntHerokuによってインストールされるように、にgrunt-cliとしてリストされている必要がありますdependency。Herokuはそれらをインストールしないため、package.jsonそれらを下にリストするだけでは不十分です。devDependenciesまた、Herokuはグローバルパッケージとしてインストールしないため、Herokuで実行するには、相対パスを使用する必要があることに注意してください(上記で構成されているため)。
これが機能しない場合(おそらく相対パスを少しいじる必要があるでしょう)、Heroku用に独自のカスタムビルドパックを作成することを検討することをお勧めします。
アップデート
0.4以降、gruntパッケージにはバイナリが含まれなくなり、gruntバイナリはパッケージの一部になりましたgrunt-cli。これを反映するように回答が更新されました。