Вот еще один способ: используйте sleep
в команде concurrently
перед запуском nodemon
.
eg,
"scripts": {
"dev": "concurrently -k \"tsc -p ./src/server -w\" \"tsc -p ./src/client -w\" \"sleep 5 && nodemon ./dist/server/server.js\"",
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node ./dist/server/server.js"
},
В моей ситуации я генерирую как клиентские, так и серверные машинописные проекты одновременно, что приводит к тому, что nodemon фактически запускается 3 раза, когда я выполняю npm run dev
. Но если я посплю 5 секунд до запуска процесса nodemon, то оба процесса tsc уже завершились, а затем продолжаю смотреть.
Вы также можете использовать параметр задержки nodemon, но мне это нужно только для задержки в первый раз, когда я выполняю npm run dev
. После этого каждая отдельная перекомпиляция любого файла в любом проекте правильно перезапускает nodemon только один раз.
Предостережение. Если ваш сервер работает медленно, вам может потребоваться увеличить задержку перехода в спящий режим более чем на 5.
Кроме того, я попробовал принятый ответ, но мое решение было быстрее для последующих перекомпиляций, в то время как процессы nodemon и tsc watch продолжали работать.
1 секунда для моего решения против 5 секунд для принятого. Я не мог получить принятый ответ, чтобы фактически запустить tsc в режиме просмотра, поэтому он был медленнее, поскольку оба проекта TypeScript получали полную перекомпиляцию при каждом изменении.
person
Sean Bradley
schedule
12.06.2020