Как сохранить приложение yoman angular с помощью grunt-forever?

У меня есть приложение на основе yoman angular, которое я запускаю с grunt serve.

Очень важно, чтобы это приложение работало все время. Я использовал навсегда раньше, и он работал нормально, но обычно работает с определенным файлом js. В то время как я хочу использовать его с задачей grunt serve.

Я нашел плагин grunt-forever — https://github.com/bustardcelly/grunt-forever - но я не знаю, как настроить мой gruntfile.js, чтобы использовать его для вызова команды grunt serve.

Раздел сервера моего файла grunt является стандартным, который генерируется йоманом для углового приложения. Это следующим образом -

  grunt.registerTask('serve', function (target) {
    if (target === 'dist') {
      return grunt.task.run(['build', 'express:prod', 'open', 'express-keepalive']);
    }

    grunt.task.run([
      'clean:server',
      'bower-install',
      'concurrent:server',
      'autoprefixer',
      'express:dev',
      'open',
      'watch'
    ]);
  });

Кто-нибудь знает, как использовать grunt-forever для вызова этой команды?


person sonicboom    schedule 01.04.2015    source источник


Ответы (2)


Я пытался понять это сам сегодня и наткнулся на этот пост на пути к выяснению.

Я все еще немного новичок во всем этом, но пришел к выводу, что grunt больше подходит для задач разработки и не рекомендуется для производства. (в этом я могу ошибаться).

Основные ловушки, с которыми я сталкивался, заключались в том, что я пытался использовать ворчание (и не мог выработать магическое заклинание), а затем, как только я понял, что должен использовать узел напрямую, чтобы пути работали.

Вот что я сделал в конце для своего приложения, созданного с помощью генератора-углового-полного стека DaftMonk:

sudo npm install forever forever-service -g
cd ~/<project directory>/server

sudo forever-service install <service name> -s /<full path to project directory>/server/app.js -e "PATH=/usr/local/bin:\$PATH" --start

Чтобы проверить, что происходит:

tail -f /var/logs/<service name>.log
person leighghunt    schedule 08.05.2015

Вот моя конфигурация, которая работает, насколько я проверял. Он способен восстанавливаться после простых ошибок и перезапускать сервер.

//load the forever task
grunt.loadNpmTasks('grunt-forever');
// Define the configuration for all the tasks
grunt.initConfig({

    ....
    forever: {
      server1:{
        options: {
          index: 'server/app.js'
        }
      }
    },
  });

...

grunt.registerTask('serve', function (target) {
  if (target === 'dist') {
    return grunt.task.run(['build', 'env:all', 'forever:server1:start', 'express:prod', 'wait', 'open', 'express-keepalive']);
  }
});

PS: я прочитал ваш другой вопрос о йоменах и подумал, что вы, должно быть, тоже задавали этот вопрос.

person cnvzmxcvmcx    schedule 22.05.2015