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