Как использовать Grunt / Gulp с pm2?

pm2-отличный инструмент для управления приложениями узлов. Как это работает с grunt / glup ? Я не нашел никаких полезных подсказок после гугления в течение 20 минут.

2 ответов


если я хорошо понимаю ваш вопрос, кажется, вы хотите развернуть свое приложение.

С pm2 0.9 развертывание можно выполнить с помощью pm2 deploy см. README.

в случае хрюканья / глотка я вижу два варианта:

  1. ты свой node_modules comitted. Используя pm2 deploy запустите процесс глотка из :

    "post-deploy" : "node ./node_modules/gulp/bin/gulp.js ./GulpFile.js && pm2 startOrRestart ecosystem.json --env production"
    
  2. используя базовый скрипт, который запустит npm install для вас, вы мог бы использовать package.json хрюкать/залпом:

    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "node server.js",
        "postinstall": "./node_modules/bower/bin/bower -q -s -f install && ./node_modules/gulp/bin/gulp.js"
    },
    

мой глоток обычно нуждается в bower для минимизации сценариев, поэтому я оставил его только для примера.

вы можете объединить два варианта, чтобы pm2 deploy установить npm скрипты и postinstall скрипт package.json.

обратите внимание, что я использую относительный путь к gulp двоичный модуль! Это просто, чтобы избежать проблемы, если глобальный модуль не установлен.

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

надеюсь, это достаточно ясно!


ответ может быть поздно это должно быть полезно для других

в командной строке выполните:

$ export NODE_ENV=production

будет настройка производства окружающей среды

$ grunt build

создаст необходимые мин.js и мин.в CSS

$ pm2 start server.js

загрузит сервер с pm2, что его пакет, который гарантирует, что сервер узла перезапустится, если ошибка и войдет в журнал.