Я разрабатываю приложение Express.Код использует операторы импорта ES6, поэтому Babel должен передать его в код ES5, чтобы его можно было запускать с Node.Исходный код ES6 хранится в моем каталоге src
, а скомпилированный код помещается в мой каталог dest
.
Я хотел бы запустить команду npm, которая будет наблюдать за любымИзмените мой каталог src
, перенесите проект в dest
, а затем перезапустите приложение Express.
Ниже приведено мое решение (я запускаю npm run server:watch
).Он использует chokidar-cli
для выполнения сценариев server:build
и server:run
всякий раз, когда любой js-файл изменяется в моем каталоге src
.Это работает отлично, за исключением того, что приложение Express не умирает при повторной передаче кода, поэтому я получаю исключение «порт используется», когда я пытаюсь снова запустить server:watch
.
// package.json
"scripts": {
"server:clean": "rm -f dist/*",
"server:build": "npm run server:clean && ./node_modules/.bin/babel ./src --experimental --source-maps-inline -d ./dist",
"server:run": "nodemon dist/app.js --watch",
"server:watch": "chokidar 'src/*.js' -c 'npm run server:build && npm run server:run'"
}
Включен ли яправильный путь здесь?Как лучше всего решить проблему такого рода?
(Для пояснения я говорю о передаче кода на стороне сервера, поэтому веб-пакет или любой другой модуль-модуль здесь неуместен)