2013-05-28 56 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