lenec ru

← все теги

#typescript

30 постов

SyntaxError: Unexpected token 'export' — что не так с настройкой

Запускаешь Node-скрипт или Jest-тест и получаешь:SyntaxError: Unexpected token 'export'Парсер увидел export, но не понял, что это. export — синтаксис ESM-модулей, и он работает только в одном из двух…

70 11K
Гавриил Барсуков

Vite Failed to resolve import — что не так и как починить

Vite швыряет в консоль ровно такое:[plugin:vite:import-analysis] Failed to resolve import "./button" from "src/App.tsx". Does the file exist?Сообщение конкретное: модуль не нашёлся по указанному…

76 15K
Демид Песцов

Drizzle: relation does not exist — типичные причины

Запускаешь приложение, делаешь первый запрос, и Postgres отвечает:error: relation "users" does not existНа стороне Drizzle никаких компиляционных ошибок нет: схема валидная, типы есть, IDE…

82 18K
Зоя Хомякова

Astro: Cannot use import statement outside a module — что не так с конфигом

Эта ошибка вылетает чаще всего там, где её не ждёшь: при запуске astro.config.mjs, при попытке подключить какой-нибудь сторонний скрипт в <script> или при вызове Node-команды над файлом, где ты…

222 11K
Руслан Енотов

Как написать первый тест на Playwright и не сделать его flaky

Первый e2e-тест на Playwright почти всегда зеленеет на ноуте и красит CI каждые третьи сутки. Через пару недель команда тихо ставит в Slack эмодзи рядом с названием прогона и начинает «перезапускать…

284 13K
Елена Воронова

Drizzle relations API: подводные камни, которые ловят на проде

Relations API в Drizzle я потрогал ещё на бете и долго относился к нему с прохладцей: казалось, удобнее писать select с join руками, чем учить новый dsl. Спустя год работы с ним на двух проектах могу…

153 10K
Степан Грачёв

Vercel AI SDK 4: миграция с v3 — что сломалось и как чинить

Я мигрировала два проекта с Vercel AI SDK v3 на v4 — один маленький pet-project, второй прод с десятком интеграций. Опыт получился разный: маленький — за час, прод — три дня. В этой статье — что в v4…

303 15K
Радмила Леопардова

Node.js + TypeScript: настройка проекта с нуля в 2026 — tsx, paths, ESM

Настроить TypeScript-проект на Node.js в 2026 — задача на 15 минут, если знаешь правильные опции. Но выбор между ESM и CJS, tsx и ts-node, tsc и tsup может запутать. Разберём актуальный стек: ESM по…

0 19K
Николай Ломов

Vue 3 Composition API vs Options API: миграция и паттерны

Composition API — главное архитектурное изменение Vue 3. Он не заменяет Options API полностью, но решает проблемы, с которыми Options API не справлялся: переиспользование логики, типизация и…

0 11K
Светлана Морозова

Drizzle vs Prisma в 2026: бенчмарки, DX и где какой выбирать

Сравнения Drizzle и Prisma я для себя делал дважды: в 2024-м, когда переводил один проект, и в 2026-м, когда переводил второй. За эти полтора года Prisma подтянулась, Drizzle тоже подрос, и…

84 19K
Степан Грачёв

Stub vs mock vs fake: ликбез на пальцах с примерами на TypeScript

Слова «stub», «mock», «fake» в команде звучат как синонимы. На код-ревью один пишет «замокал API», другой — «застабил клиента», третий — «подставил fake-репозиторий». Все имеют в виду «подменили…

396 19K
Елена Воронова

TypeScript 5.5 inference: что улучшилось

TypeScript 5.5 принёс несколько улучшений в inference, которые я заметила в реальной работе через неделю после обновления. Это не громкий релиз, но для команды, которая пишет на типах как на…

406 14K
Алина Боброва

Better Auth vs NextAuth vs Lucia: что выбрать в Node-проекте

За последние два года я перебрал в работе все три библиотеки на разных проектах. Где-то нужен был быстрый OAuth с Google и парой социалок, где-то — кастомная регистрация с подтверждением email и…

144 19K
Тимур Беркутов

useCallback в React: когда реально нужен, а когда вредит

Типичный Docker-образ Node.js-приложения на базе node:18 весит больше гигабайта. В проде вам не нужны ни компилятор, ни dev-зависимости, ни исходники TypeScript. Multi-stage builds решают эту…

0 17K
Светлана Морозова

Page Object в Playwright в 2026: нужен ли вообще, и как обойтись без него

Page Object Pattern в e2e-тестах живёт с эпохи Selenium и WebDriver. Тогда без него тесты превращались в ад из CSS-селекторов и копипасты. В 2026 году с Playwright всё иначе: фреймворк уже даёт…

403 16K
Елена Воронова

Better Auth с Drizzle и Postgres: настройка с нуля

Этот сетап у меня сейчас стоит на трёх сервисах в проде, поэтому опишу его конкретно: какие файлы, какие команды, какие подводные. Цель — за час получить работающий вход через email/пароль и Google…

117 12K
Тимур Беркутов

Drizzle ORM с Postgres в TypeScript: настройка проекта с нуля

Drizzle я подсадил у себя на проде примерно полтора года назад, когда устал бороться с Prisma на длинных миграциях. С тех пор перевёл на него три сервиса разной величины и, кажется, нащупал…

181 16K
Степан Грачёв

Anthropic SDK для Node: с нуля до прода за час

Если ты подключаешь Claude к Node-приложению — можешь либо звать API через fetch, либо взять официальный SDK. Я попробовал оба пути, и для прода однозначно SDK. В этой статье — что в нём есть, как…

393 17K
Артур Гепардов

react-hook-form + zod: типизированные формы без боли

Когда я последний раз делала форму с нуля без библиотек, это был 2021 год, и через две недели я переписала всё на react-hook-form. С тех пор каждая нетривиальная форма в моих проектах живёт на rhf, а…

256 10K
Юлия Скворцова

Node.js graceful shutdown: корректно завершаем сервер в Kubernetes

Деплой новой версии — и часть пользователей получает 502. Kubernetes послал SIGTERM, а сервер оборвал соединения на полуслове. Graceful shutdown — обязательная часть production-ready сервиса:…

0 14K
Николай Ломов

Claude Code: настройка под большой проект на 200к строк

У меня на работе монорепа на 200 тысяч строк TypeScript: фронт на Next, бэк на Hono, общие пакеты, скрипты, внутренние SDK. На таком объёме даже хорошие coding-ассистенты начинают выдавать ерунду,…

320 19K
Захар Мангустов

Node.js worker_threads: параллелизм для CPU-интенсивных задач

Node.js — однопоточный. Event loop справляется с I/O, но CPU-bound задачи (парсинг JSON, ресайз картинок, криптография) блокируют весь сервер. Модуль worker_threads даёт настоящие потоки с…

0 12K
Николай Ломов

TypeScript satisfies: когда вместо as

Оператор satisfies в TypeScript появился в 4.9 и уже к 2026 году стал привычным. Но тренд я наблюдаю до сих пор: разработчики, особенно из мира JS, путают satisfies с as и иногда применяют их…

208 10K
Глеб Тихомиров

OpenAPI в FastAPI: настройка генерации, которая нравится фронтам

OpenAPI-схема в FastAPI генерируется бесплатно. Открыл /docs — и вот тебе Swagger UI. Замечательно, пока ты пишешь сам бэкенд. Но потом за неё берутся фронтендеры с генератором клиентов, и…

91 19K
Андрей Крылов

Async/await в TypeScript: практические паттерны тестирования

Асинхронный код в TypeScript стал стандартом современной разработки, но его тестирование требует особого подхода. В этой статье разберём практические паттерны тестирования async/await конструкций,…

0 57
Тестовый Автор

Node.js Streams: обработка больших файлов без утечек памяти

Вызов fs.readFile('data.csv') на файле в 10 GB — гарантированный OOM. Весь файл загружается в память целиком. Streams решают проблему: данные обрабатываются порциями (chunks), и в памяти одновременно…

0 18K
Николай Ломов

Server Actions в Next.js: где они уместны, а где лучше REST

Server Actions преподносят как «теперь не нужно писать API-эндпоинты». Это правда ровно настолько же, насколько и неправда. На простых формах действительно не нужно. На всём остальном — нужно, просто…

389 13K
Юлия Скворцова

React Server Components в App Router: где они уместны, а где ломают DX

Я сначала тоже ненавидела server components. Год назад мы переезжали с pages router на app router в Next.js, и первые две недели я ходила и бубнила, что всё это сломанная абстракция. Потом…

406 12K
Юлия Скворцова

Strict TypeScript на проекте: какие флаги дают ценность, а какие шумят

Я работаю с TypeScript шесть лет, и за это время три раза включала strict: true на чужих проектах. Все три раза первая реакция команды была одна: «у нас же десять тысяч ошибок, мы что, всё это будем…

186 13K
Юлия Скворцова