Как запускать TypeScript файлы из командной строки: полное руководство
Основные способы запуска TypeScript из командной строки
Существует несколько подходов, и выбор зависит от ваших целей: разработка, тестирование или продакшен. Рассмотрим каждый.
1. ts-node — для разработки и быстрого тестирования
Самый простой способ — использовать ts-node. Он компилирует TypeScript "на лету" в памяти и сразу выполняет результат.
# Установка глобально
npm install -g ts-node
# Или локально в проект
npm install --save-dev ts-node
# Запуск
ts-node hello.ts
Преимущества:
- Не требует отдельной компиляции
- Поддерживает
tsconfig.jsonавтоматически - Отлично подходит для разработки
Недостатки:
- Медленнее, чем запуск скомпилированного JS
- Не рекомендуется для продакшена
2. Компиляция в JavaScript — для продакшена
Правильный производственный подход: сначала компилируем TypeScript в JavaScript, затем запускаем обычный Node.js.
# Установка TypeScript
npm install -g typescript
# Компиляция (создаст hello.js)
tsc hello.ts
# Запуск скомпилированного файла
node hello.js
Для проектов с tsconfig.json:
# Создаем tsconfig.json
npx tsc --init
# Компилируем весь проект
npx tsc
# Запускаем
node dist/index.js # или ваш путь к выходному файлу
Преимущества:
- Максимальная производительность
- Не требует дополнительных зависимостей во время выполнения
- Стандартный подход для продакшена
3. tsx — современная альтернатива ts-node
Более новый инструмент, который быстрее и лучше поддерживает современный TypeScript и ESM модули.
npm install -g tsx
# Запуск
tsx hello.ts
4. Настройка package.json для удобства
Добавьте скрипты в package.json:
{
"scripts": {
"dev": "ts-node src/index.ts",
"build": "tsc",
"start": "node dist/index.js",
"start:dev": "tsx watch src/index.ts" // с авто-перезагрузкой
}
}
5. nodemon + ts-node — для разработки с автоперезагрузкой
npm install --save-dev nodemon ts-node
# В package.json
{
"scripts": {
"dev": "nodemon --exec ts-node src/index.ts"
}
}
Что выбрать?
- Для быстрого запуска одного файла:
ts-nodeилиtsx - Для разработки проекта:
nodemon + ts-nodeилиtsx watch - Для продакшена:
tsc+node dist/... - Для CI/CD: компиляция через
tsc, затем запуск черезnode
Также можно использовать ts-node --transpile-only для ускорения (без проверки типов), если вы уверены в корректности кода.
Альтернативный подход: использование Deno или Bun
Если вы не привязаны к Node.js, рассмотрите современные рантаймы, которые поддерживают TypeScript "из коробки":
Deno
# Установка Deno
# curl -fsSL https://deno.land/install.sh | sh
# Запуск TypeScript напрямую
deno run hello.ts
Deno понимает TypeScript без дополнительных инструментов, поддерживает модули ES и имеет встроенную проверку типов.
Bun
# Установка Bun
# curl -fsSL https://bun.sh/install | bash
# Запуск
bun run hello.ts
Bun также работает с TypeScript нативно и значительно быстрее Node.js.
Когда это полезно?
- Для новых проектов, где нет legacy-зависимостей от Node.js
- Для быстрых прототипов и скриптов
- Если нужна максимальная производительность (Bun)
Однако помните: в крупных проектах с кучей npm-пакетов Node.js + TypeScript всё ещё остаётся стандартом. Deno и Bun могут иметь проблемы совместимости с некоторыми библиотеками.
Ответов пока нет.
Войдите чтобы оставить ответ