2014-10-02 22 views
3

我想在Amazon OpsWorks上部署应用程序时触发Grunt或Gulp。 默认情况下,OpsWorks的Node.js层运行npm install,但不是吞噬,我不知道如何编写自定义配方:还有其他解决方案吗?在OpsWorks中使用Grunt或Gulp

回答

2

不,你必须写一个配方。

opsworks-食谱/部署/食谱/ nodejs.rb(https://github.com/aws/opsworks-cookbooks/blob/master-chef-11.10/deploy/recipes/nodejs.rb#L20主厨11.10),其读取:

即使OpsWorks的Node.js的层经由配方安装NPM

opsworks_nodejs do 
    deploy_data deploy 
    app application 
end 

其在被定义:

opsworks-食谱/部署/定义/ opsworks_nodejs.rb(https://github.com/aws/opsworks-cookbooks/blob/master-chef-11.10/deploy/definitions/opsworks_nodejs.rb#L9主厨11.10)和作用:

node[:dependencies][:npms].each do |npm, version| 
    execute "/usr/local/bin/npm install #{npm}" do 
     cwd "#{deploy[:deploy_to]}/current" 
    end 
end 
0

另一种方法是从OpsWorks期望文件产卵咕嘟咕嘟,即server.js

var child_process = require("child_process"); 
child_process.spawn("./node_modules/gulp/bin/gulp.js", 
    [ "main" ].concat(process.argv.slice(2)), { 
    stdio: "inherit" 
    } 
); 

和随后击发真正的主文件(例如index.js)来自Gulp。

相关问题