Я боролся с тем же для моей среды разработки, пока не заметил, что nodemon
API позволяет нам изменять его поведение по умолчанию для выполнения пользовательской команды. Например:
nodemon --watch 'src/**/*.ts' --ignore 'src/**/*.spec.ts' --exec 'ts-node' src/index.ts
Или даже лучше: перенести конфигурацию nodemon в nodemon.json
файл со следующим содержимым, а затем просто запустить nodemon
, как предложил Сандокан:
{ "watch": ["src/**/*.ts"], "ignore": ["src/**/*.spec.ts"], "exec": "ts-node ./index.ts" }
Благодаря этому вы сможете перезагружать ts-node
процесс в режиме реального времени, не беспокоясь о базовой реализации.
Ура!
Обновлено для самой последней версии nodemon:
Создайте nodemon.json
файл со следующим содержанием.
{
"watch": ["src"],
"ext": "ts",
"ignore": ["src/**/*.spec.ts"],
"exec": "ts-node ./src/index.ts" // or "npx ts-node src/index.ts"
}
index.ts
это экспресс-экземпляр, как я могу убить его и перезапустить{ "watch": ["src/**/*.ts"], "ignore": ["src/**/*.spec.ts"], "exec": "ts-node ./app-server.ts" }
просто введитеnodemon
./
перед именами папок, и она сломалась. Это сработало для меня{ "verbose": true, "watch": ["server/**/*.ts"], "ext": "ts js json", "ignore": ["server/**/*.spec.ts"], "exec": "ts-node index.ts" }
. И командная строка:nodemon --watch server/**/*.ts --ignore server/**/*.spec.ts --verbose --exec ts-node index.ts
ext
в файле конфигурации, так что его поиск изменений. Мой конфигурационный файл выглядит так:{ "watch": ["src/**/*.ts"], "ignore": ["src/**/*.spec.ts"], "ext": "ts js json", "_exec": "node dist/startup.js", "exec": "ts-node src/startup.ts" }
Я бросил
nodemon
иts-node
в пользу гораздо лучшей альтернативы,ts-node-dev
https://github.com/whitecolor/ts-node-devПросто беги
ts-node-dev src/index.ts
источник
tsc --watch
.nodemon
сts-node
. Спасибо!"start": "ts-node-dev src"
. Нет необходимости в babel, nodemon или любой другой конфигурации, которая идет с ним. Все обрабатывается для вас.Вот альтернатива в HeberLZ в ответ , используя НПМ скрипты.
Мой
package.json
:-e
флаг устанавливает расширения для поиска,-w
устанавливает просматриваемый каталог,-x
выполняет сценарий--inspect
вwatch:serve
сценарии фактически указывается флаг node.js, он просто включает протокол отладки.источник
ts-node --inspect -- src/index.ts
сейчас из-за этого .-e ts -w ./src
сделал свое дело для меня - это работало с созданным CLI-проектом loopback4Специально для этой проблемы я создал
tsc-watch
библиотеку. вы можете найти его на нпм .Очевидный вариант использования будет:
tsc-watch server.ts --outDir ./dist --onSuccess "node ./dist/server.js"
источник
"[...] similar to nodemon but for TypeCcript."
:)Это работает для меня:
Видимо, благодаря этому запросу тянуть: https://github.com/remy/nodemon/pull/1552
источник
ts-node
установил.node_modules/
? Для меня это не удастся, если у меня его нет.ts-node
установки. Выполнение этой команды безts-node
приведет кfailed to start process, "ts-node" exec not found
ошибке. Вы, вероятно, имели это как оставшийся артефакт вnode_modules
. При этом, это решение намного приятнее, так как не требует дополнительной настройки.Добавьте
"watch": "nodemon --exec ts-node -- ./src/index.ts"
вscripts
раздел своегоpackage.json
.источник
Вы могли бы использовать ts-node-dev
Он перезапускает процесс целевого узла при изменении любого из необходимых файлов (как стандартного узла-dev), но разделяет процесс компиляции Typescript между перезапусками.
устанавливать
и ваш package.json может быть таким
источник
я сделал с
и начало пряжи .. ts-node не похож на 'ts-node'
источник
Я бы предпочел не использовать ts-node и всегда запускать из папки dist.
Для этого просто настройте свой package.json с конфигурацией по умолчанию:
и затем добавьте файл конфигурации nodemon.json :
Здесь я использую "exec": "npm restart"
поэтому все ts-файлы перекомпилируются в js-файл, а затем перезапускают сервер.
Для запуска в среде разработчиков,
Используя эту настройку, я всегда буду запускать из распределенных файлов и без необходимости в ts-node.
источник
добавьте это в ваш файл package.json
и чтобы это работало, вам также нужно установить ts-node как dev-зависимость
запустить,
yarn dev
чтобы запустить сервер разработкиисточник