
zero config запускатор typescript
Сегодня новый для меня формат полезностей. Очень захотелось поделиться инструментом, который я нашёл при разработке микрокурсов – tsx
Была ли у вас задача просто запустить ts файл?
У меня – да. Много, много, много раз... Сиды, базы данных, скрипты для работы с файлами, генераторы кода. И много всего прочего
И бесит, что каждый раз какие то проблемы. Требуются тучи манипуляций
Как это на базовом tsc
3 команды вроде как всего. Но это чаще всего работать не будет. Почти всегда потребуется конфигурация системы модулей, версии стандартной билиотеки, jsx... и всё равно работать не будет – модули не те, или ещё что...
Как будто должен эту проблему решать ts-node
Но не тут то было. Если это один файл, может и сработает. Но если у вас есть там импорты, опять же нужна доп конфигурация. И она точно будет отличаться от той, которая у вас в проекте. Придётся держать специальный отдельный конфиг под ts-node 🥲
По этой причине я писал все свои скрипты раньше на Deno, а теперь на Bun.
Там как раз всё с этим хорошо. В Deno можно даже зависимости предварительно не ставить, просто ссылку делаешь, и всё.
Но у Deno проблемы были долгое время со взаимодействием с node. А вот у bun вообще всё с этим замечательно)
Вот это будет реально работать почти всегда
Но не везде есть bun
Если вы запускаете свои скрипты на ci, то может оказаться, что bun там просто не поставить
И тут я нашёл либу tsx. zero config запускатор typescript кода в node.js. С ним просто мало проблем)
Заработает везде, где есть npm. Жалко только зависимости всё равно придётся ставить
Последний раз мучался и мучался с запуском сидов. Видите ли, они используют файлы из next.js приложения, а там нужна особая конфигурация.
В результате без дополнительных проблем заработало в:
- bun
- tsx
Так что, если вам нужно просто запустить файл, но не хочется возиться с конфигами — tsx очень удобное решение
Сегодня новый для меня формат полезностей. Очень захотелось поделиться инструментом, который я нашёл при разработке микрокурсов – tsx
Была ли у вас задача просто запустить ts файл?
У меня – да. Много, много, много раз... Сиды, базы данных, скрипты для работы с файлами, генераторы кода. И много всего прочего
И бесит, что каждый раз какие то проблемы. Требуются тучи манипуляций
Как это на базовом tsc
npm init -y
npx tsc main.ts
node main.js
3 команды вроде как всего. Но это чаще всего работать не будет. Почти всегда потребуется конфигурация системы модулей, версии стандартной билиотеки, jsx... и всё равно работать не будет – модули не те, или ещё что...
Как будто должен эту проблему решать ts-node
ts-node main.ts
Но не тут то было. Если это один файл, может и сработает. Но если у вас есть там импорты, опять же нужна доп конфигурация. И она точно будет отличаться от той, которая у вас в проекте. Придётся держать специальный отдельный конфиг под ts-node 🥲
По этой причине я писал все свои скрипты раньше на Deno, а теперь на Bun.
Там как раз всё с этим хорошо. В Deno можно даже зависимости предварительно не ставить, просто ссылку делаешь, и всё.
Но у Deno проблемы были долгое время со взаимодействием с node. А вот у bun вообще всё с этим замечательно)
bun main.tsx
Вот это будет реально работать почти всегда
Но не везде есть bun
Если вы запускаете свои скрипты на ci, то может оказаться, что bun там просто не поставить
И тут я нашёл либу tsx. zero config запускатор typescript кода в node.js. С ним просто мало проблем)
npx tsx main.ts
Заработает везде, где есть npm. Жалко только зависимости всё равно придётся ставить
Последний раз мучался и мучался с запуском сидов. Видите ли, они используют файлы из next.js приложения, а там нужна особая конфигурация.
В результате без дополнительных проблем заработало в:
- bun
- tsx
Так что, если вам нужно просто запустить файл, но не хочется возиться с конфигами — tsx очень удобное решение