it-swarm.com.ru

Как посмотреть и перезагрузить ts-узел при изменении файлов TypeScript

Я пытаюсь запустить сервер разработки с TypeScript и приложением Angular, не передавая файлы ts каждый раз. Я обнаружил, что могу выполнять запуск с помощью ts-node, но я также хочу просматривать файлы .ts и перезагружать приложение/сервер, как я это делал бы с чем-то вроде gulp watch.

105
Ieltxu Algañarás

Я боролся с тем же для моей среды разработки, пока не заметил, что API-интерфейс nodemon позволяет нам изменять его поведение по умолчанию для выполнения пользовательской команды. Пример этого будет выглядеть следующим образом:

nodemon --watch 'src/**/*.ts' --ignore 'src/**/*.spec.ts' --exec 'ts-node' src/index.ts

Или, что еще лучше, добавьте в конфигурацию nodemon команду Sandokan, добавив ее в файл nodemon.json со следующим содержимым, а затем просто запустите nodemon:

{ "watch": ["src/**/*.ts"], "ignore": ["src/**/*.spec.ts"], "exec": "ts-node ./index.ts" }

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

Ура!

Обновлено для самой последней версии nodemon:

Создайте файл nodemon.json со следующим содержимым.

{
  "watch": ["src"],
  "ext": "ts",
  "ignore": ["src/**/*.spec.ts"],
  "exec": "ts-node ./src/index.ts"
}
228
HeberLZ

Вот альтернатива HeberLZ ответ , используя сценарии npm.

Мой package.json:

  "scripts": {
    "watch": "nodemon -e ts -w ./src -x npm run watch:serve",
    "watch:serve": "ts-node --inspect src/index.ts"
  },
  • Флаг -e устанавливает расширения для поиска,
  • -w устанавливает наблюдаемый каталог,
  • -x выполняет скрипт.

--inspect в скрипте watch:serve на самом деле является флагом node.js, он просто включает протокол отладки.

39
im.pankratov

Я выбросил nodemon и ts-node в пользу гораздо лучшей альтернативы ts-node-devhttps://github.com/whitecolor/ts-node-dev

Просто запустите ts-node-dev src/index.ts

36
Mikael Couzic

Специально для этой проблемы я создал библиотеку tsc-watch. Вы можете найти его на npm .

Очевидный вариант использования будет:

tsc-watch server.ts --outDir ./dist --onSuccess "node ./dist/server.js"

8
gilamran

Добавьте "watch": "nodemon --exec ts-node -- ./src/index.ts" в раздел scripts вашего package.json.

7
TakaSoft

вы можете использовать ts-node-dev

Он перезапускает процесс целевого узла при изменении любого из необходимых файлов (как стандартного узла-dev), но разделяет процесс компиляции TypeScript между перезапусками.

Установить

yarn add ts-node-dev --dev

и ваш package.json может быть таким

"scripts": {
  "test": "echo \"Error: no test specified\" && exit 1",
  "tsc": "tsc",
  "dev": "ts-node-dev --respawn --transpileOnly ./src/index.ts",
  "prod": "tsc && node ./build/index.js"
}
1
jsina

Я использую tsmonhttps://www.npmjs.com/package/tsmon он глубоко интегрирован с TypeScript и предоставляет функцию инкрементной транспортировки и перезагрузки.

Я использовал ts-node-dev, пока однажды не заметил, что он не может обнаружить изменения на интерфейсах.

Устанавливать

npm install tsmon

Перейдите в папку проекта TypeScript

tsmon [you .ts file]
0
Ling