2014-10-02 24 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。

相關問題