2013-05-28 155 views
2

有沒有人試圖部署使用的應用程序https://github.com/bower/bowerNodejitsu託管?Nodejitsu和涼亭安裝

問題是npm pack命令,它由nodejitsu用來部署應用程序。它會忽略所有以點開頭的文件,尤其是.bowerrc這就是爲什麼我無法運行bower install作爲後期部署腳本。

有什麼建議嗎?也許使用空的.npmignore文件?

謝謝!

回答

2

創建應用程序時,您應該提交components文件夾。這也是npm的推薦做法。這樣你就可以確保你只部署你在本地的東西。鮑爾最終會得到一個shrinkwrap命令,但現在這是要走的路。

+1

非常感謝,我一直認爲包管理員提供的東西應該遠離源代碼管理。 –

3

我有同樣的問題,並(不知何故)我解決了它沒有提交bower_components文件夾。由於Bower達到1.0,可以通過編程方式使用API​​,而不是通過命令行界面。因此,你可以如下創建一個小的腳本:

var bower = require('bower'), 
    path = require('path'); 

bower.commands 
.install([path.resolve(".")]) 
.on('end', function (installed) { 
    console.log(installed); 
}); 

在Nodejitsu有可能觸發命令部署前後使用您的package.jsonscript領域。因此,我可以觸發我的亭子上部署後安裝有:

{ 
    "name": "myapp", 
    "version": "0.0.1", 
    "description": "", 
    "main": "app.js", 
    "scripts" : { 
    "predeploy": "echo This will be run before deploying the app", 
    "postdeploy": "node bower_install.js", 
    "start": "node app.js" 
    }, 
    "dependencies": { 
    ... 
    } 
} 

哪裏bower_install.js是上面的腳本。

+1

Nodejitsu的postdeploy腳本在本地*運行,因此使用它只會在本地安裝組件(不在服務器上)。你可以使用這種技術,但你必須在你的應用程序中執行它(也許在啓動時)。 – inxilpro