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