2015-10-27 2 views
1

Я использую PM2 для запуска и выполнения процесса узла на некоторое время, и он отлично работает, пока я не попытаюсь использовать babel.PM2 и babel всегда «Порт в использовании»

Я не уверен, в чем проблема, но когда я начинаю проект с babel, он не может прекратить показывать Port 3000 is already in use.

Этот проект является копией другого. Они почти одинаковы, кроме scripts в package.json.

"scripts": { 
    "start": "npm run babel | node ./bin/www", 
    "babel": "./node_modules/.bin/babel server -d lib" 
} 

и оригинал намного проще

"scripts": { 
    "start": "node ./bin/www" 
    } 

Я использую начать процесс run process.json, и добавить "exec_interpreter": "babel-node" в проекте с Бабелем.

Я также установил некоторые новые пакеты для проекта копирования, включая babel, babel-core, babel-loader, реагировать, реагировать, реагировать-hot-loader, webpack и webpack-dev-сервер. И я изменил код с ES5 на ES6, вот почему я использую babel (да, я пытаюсь использовать реакцию и переносить на ES6 на основе обычного экспресс-проекта)

Когда я перезагружаю свой Mac и запускаю оригинал проект без babel, все в порядке. Затем я останавливаю процесс и продолжаю запускать проект с помощью babel, он продолжает метать Port 3000 is already in use.

COMMAND PID USER FD TYPE    DEVICE SIZE/OFF NODE NAME 
Google  394 brick 14u IPv6 0x432e592f22d3b26b  0t0 TCP localhost:52261->localhost:hbci (CLOSE_WAIT) 
Google  394 brick 16u IPv6 0x432e592f22d397ab  0t0 TCP localhost:52262->localhost:hbci (CLOSE_WAIT) 
Google  394 brick 213u IPv6 0x432e592f246f87ab  0t0 TCP localhost:52264->localhost:hbci (CLOSE_WAIT) 
node  1210 brick 13u IPv6 0x432e592f22d377ab  0t0 TCP *:hbci (LISTEN) 

Я использую в оболочке lsof -i:3000, это показывает, что есть процесс узла и 2-3 под названием Google процессы (я использую хром) использует порт. Даже я убил процесс, он снова появляется (с другим pid).

Я понятия не имею, в чем проблема.

ответ

2

Решено в GitHub. Это действительно пришедший случай. Одним из способов решения проблемы является использование барабанщика require hook во входном файле.

Подробнее читайте здесь: https://github.com/Unitech/pm2/issues/1643

Смежные вопросы