2013-02-06 11 views
29

Bowerはクライアントサイド用です。npmはサーバ側のもので、component.jsonファイルを読み込んでデプロイ時にフェッチしなければならないので、herokuがslugコンパイル時に実行することができてうれしく思います。それはルビーの熊手で可能だとして - (>npm helpheroku run bashherokuコマンドラインでnpmを起動するにはどうすればいいですか?

は、残念ながら私はHerokuのコンソールまたは一回限りのコマンド(heroku run "npm help")からNPMか亭を呼び出すことはできません。私はpackage.jsonにnpmとnode(最新/ xバージョン)を入れましたが、エンジンのセクションでは依存関係ではありません。

これは、node buildpackをカスタマイズすることで解決できると思いますが、私はこれをあまりにも重いものと考えています。

+0

よう亭を使用することができます:あなたはあなたのbuildpackが安全NPMインストールできるかどうかを確認したい場合はどのようなバイナリの依存関係を持つパッケージpackage.json依存関係を追加するには、 'git push heroku'をテストする必要がありますが、テストには' heroku run npm install .... 'が必要です。私はまだ 'heroku run bash'でnpmを実行する方法をまだ分かっていません –

答えて

61

することもできますセットアップpostintallコマンド、あなたのpackage.json

"dependencies": { 
    "bower": "0.6.x" 
}, 
"scripts": { 
    "postinstall": "./node_modules/bower/bin/bower install" 
} 

その後npm installもインストールされます亭の依存関係でこのような何か。

プロ:それらをすべて統治するコマンド。

短所::不必要にbowerを依存関係として埋め込みます。

+0

それでも素晴らしい解決策ですが、私はそのpostinstallスクリプトについて知らなかった。 npmのドキュメントにもっと掘り下げる必要があります。 –

+1

最新のバワーの依存関係をインストールするには、次のコマンドを実行します。 'npm install - save bower' –

+0

恐ろしいです!その解決策については考えなかった。 – JHannes

6

あなたはこのようrunを使用することができます。

heroku run npm install git://github.com/webjay/kaiseki 
+0

これはnpmを呼び出すだけです(実際には見出しは少し誤解を招いていました)。 - 質問は、インストール後にbower依存関係をインストールすることに関するものです。私は例としてnpmを取っただけです。あなたのコマンドラインはnpmを正しく起動しますが、手動で呼び出すことを忘れることはできません - > xavier.seignardのソリューションはデプロイ時に自動的にすべてを行います。 – Stefan

+8

これは非常に役に立たない。一時的なdynoが作成され、コマンドが実行された後、破棄されます。あなたの本当のダイノスは影響を受けません。 – sbichenko

0

あなたは以下の答えに直接この

"dependencies": { 
    "bower": "^1.7.9" 
}, 
"scripts": { 
    "postinstall": "sudo bower install --allow-root " 
} 
関連する問題