Что это такое?
tsx (TypeScript Execute) — это утилита командной строки, которая позволяет запускать файлы TypeScript и JSX/TSX напрямую в Node.js. Она транспилирует код на лету с помощью esbuild, без отдельного шага компиляции.
Нужно ли сначала компилировать TypeScript или tsx запускает его сразу?
tsx запускает файлы .ts/.tsx (и .js/.jsx) напрямую вместо команды `node`. Он транспилирует исходный код в памяти с помощью esbuild перед выполнением, так что отдельную сборку настраивать не нужно.
Как запустить с его помощью файл TypeScript?
Можно запустить разово командой `npx tsx file.ts` или добавить tsx как devDependency (`npm install --save-dev tsx`) и вызывать `tsx` там, где обычно пишете `node`.
Что ему нужно под капотом?
Нужна Node.js версии 18 или новее. Единственная зависимость времени выполнения — esbuild, которая входит в состав пакета, так что для начала работы дополнительная настройка tsconfig не требуется.
Проверяет ли tsx типы в моем коде на TypeScript?
Нет. Поскольку tsx полагается на esbuild ради быстрой транспиляции, а не на полноценный компилятор TypeScript, он не выполняет проверку типов. Поэтому ошибки типов не помешают коду запуститься.
Чем tsx отличается от ts-node?
tsx построен на esbuild, а не на официальном компиляторе TypeScript, который использует ts-node. Благодаря этому запуск и выполнение работают заметно быстрее, но проверка типов не выполняется.
Можно ли использовать его для автоматического перезапуска во время разработки?
Да, команда `tsx watch file.ts` автоматически перезапускает скрипт при изменении любой из его зависимостей. Это похоже на nodemon, но с поддержкой TypeScript и JSX из коробки.
Можно ли использовать его без изменения команды запуска?
Да, tsx также может работать как хук-загрузчик для Node.js, например `node --import tsx script.ts`. Тогда он добавляет поддержку TypeScript существующему процессу Node, не заменяя исполняемый файл `node`.
Which topics is it in?
watch, transpiler, esm, runtime, node, compiler, performance, command-line-tool, npm, terminal, tool, nodejs

