Использование Grunt или Gulp с OpsWorks

Я хочу запускать Grunt или Gulp при развертывании приложения в Amazon OpsWorks. По умолчанию уровень Node.js OpsWorks запускает npm install, но не gulp, и я не знаю, как писать собственные рецепты: есть ли другое решение?


person ehmicky    schedule 02.10.2014    source источник


Ответы (2)


Нет, вы должны написать рецепт.

Даже уровень Node.js OpsWorks устанавливает npm по рецепту:

opsworks-cookbooks/deploy/recipes/nodejs.rb(https://github.com/aws/opsworks-cookbooks/blob/master-chef-11.10/deploy/recipes/nodejs.rb#L20 для Chef 11.10), который гласит:

opsworks_nodejs do
    deploy_data deploy
    app application
end

который определяется в:

opsworks-cookbooks/deploy/definitions/opsworks_nodejs.rb (https://github.com/aws/opsworks-cookbooks/blob/master-chef-11.10/deploy/definitions/opsworks_nodejs.rb#L9 для Chef 11.10) и делает:

node[:dependencies][:npms].each do |npm, version|
    execute "/usr/local/bin/npm install #{npm}" do
        cwd "#{deploy[:deploy_to]}/current"
    end
end
person Diego Milán    schedule 22.10.2014

Альтернативой является создание Gulp из ожидаемого 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.

person ehmicky    schedule 04.03.2015