2013-02-06 31 views
29

Bower是客戶端的JavaScript是什麼NPM服務器端和讀取component.json文件認識到,應該在部署時中獲取的依賴,所以我很高興它的Heroku將在塞編譯時間運行它。 ( - >npm helpheroku run bash),因爲它可能與紅寶石的耙如何在heroku命令行上調用npm(安裝涼亭組件)?

不幸的是我不能從Heroku的控制檯或一個關斷命令(heroku run "npm help")調用NPM或亭子。我已將npm和node(最新版本/ x版本)放入我的package.json中,但在引擎部分,而不是依賴關係。

,我認爲這可以通過定製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也將安裝亭子依賴。

優點:一個命令來統治他們。

缺點:你不必要嵌入涼亭作爲一個依賴。

+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

這是非常無用的。這將創建一個臨時測試儀,運行命令然後銷燬它。您的真實指針將不受影響。 – sbichenko

0

您可以使用涼亭直接這樣

"dependencies": { 
    "bower": "^1.7.9" 
}, 
"scripts": { 
    "postinstall": "sudo bower install --allow-root " 
}