2017-02-17 21 views
0

У меня есть вопрос, который, как пройти «--node-арг» аргументы в PM2 при использовании режима JSON конфигурации, например:--node-арг в PM2 при использовании режима JSON конфигурации

пм2 начать --node-арг = «- отладка = 5858» myPm2Config.json

ну я знаю, что могу написать аргументов в один myPm2Config.json файл, но я не хочу, чтобы это сделать, потому что я хотите сделать две команды запуска как «отладочные» и «производственные» для запуска приложения, такие как «pm2_run» и «pm2_debug» и «pm2_debug» с аргументом --node-args и «pm2_run» нет, и я не хочу создавать два файла «myPm2Config.json», потому что это означает, что если что-то нужно изменить, мне нужно будет изменить два конфигурационных файла json, так что есть ли простой способ сделать это? Спасибо, парни!

ответ

1

Я нашел решение! это использование js config вместо json config.

Во-первых, я создаю файл pm2.config.js. (марка: Имя файла должно быть конец с .config.js)

//[pm2.config.js] 

let config = { 
    apps : [{ 
    name  : "node_shells", 
    script  : "./bin/www", 
    log_date_format : "YYYY-MM-DD HH:mm:SS", 
    log_file : "logs/pm2.log", 
    error_file : "logs/pm2-err.log", 
    out_file : "logs/pm2-out.log", 
    pid_file : "logs/pm2.pid", 
    watch  : true, 
    ignore_watch : ["logs/*", "node_modules/*", "uploads/*"] 
    }] 
} 

let debug_mode = false; 
for(let arg of process.argv) { 
    if(arg == '-debug') { 
    debug_mode = true; 
    break; 
    } 
} 

if(debug_mode) { 
    console.log('== launching in debug mode =='); 
    config.apps[0].node_args = "--debug=5858"; 
} 
else { 
    console.log('== launching in production mode =='); 
    config.apps[0].node_args = " "; //*require! or it will always uses latest debug options 
} 

module.exports = config; 

затем создайте два стартовых файлов:. "Pm2_run" и "pm2_debug"

#[pm2_run] 
pm2 start pm2.config.js 

#[pm2_debug] 
pm2 start pm2.config.js -- -debug 

теперь легко переключить режим отладки или режим производства!