Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

Я боролся с тем же для моей среды разработки, пока не заметил, что 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"
}

Ответ 2

Здесь альтернатива 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 устанавливает extenstions для поиска,
  • -w устанавливает наблюдаемый каталог,
  • -x выполняет script.

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

Ответ 3

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

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

Ответ 4

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

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

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

Ответ 5

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

Ответ 6

Вы могли бы использовать 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"
}

Ответ 7

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

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

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

npm install tsmon

Перейдите в папку проекта вашего машинописного текста

tsmon [you .ts file]