Песнь о том, как конфигурация Node.js проектов превратилась в ад

Привет, Мир! ✌

Песнь о том, как конфигурация Node.js проектов превратилась в ад

Смотрю я на файлики в корне своего репозитория и понимаю — где-то мы свернули не туда. Очень много визуального шума, практически каждый инструмент смотрит только в свой конфиг.

Например, хотим писать проект на Next.js. Вот тебе next.config.js, eslintrc.json, tsconfig.json, и package.json.

Хочешь настроить стилизацию? Держи postcss.config.js и tailwind.config.js.

Хочешь следить за ошибками? На sentry.server.config.js, sentry.client.config.js, and sentry.edge.config.js.

А ко всему этому ещё добавим различные .gitignore, .eslintignore и всё в этом духе.

В итоге репозиторий превращается в свалку. Чтобы работать с проектом нужно около 30 конфигов. Классно?

Типичный Node.js проект :)
Типичный Node.js проект :)

Было бы круто, если бы можно было хранить всё в одном файлике, например так:

Пример config.js
Пример config.js

Или можно бы было убрать все конфиги в папку .config. В теории, и сейчас это можно попробовать сделать, но что-то мне подсказывает, некоторые инструменты отвалятся, так как смотрят на расположение `package.json`.

Можно хранить все конфиги в package.json, но формат JSON немного ограничивает в синтаксисе, поэтому мимо.

Нашёл для себя временный компромисc. В VSCode есть возможность создавать подобие папок для файлов. Добавляем в настройки (⇧⌘P → Open User Settings) несколько строчек:

settings.json для VSCode
settings.json для VSCode

Полный список паттернов слишком большой для поста, поэтому можете взять его отсюда.

Результат настроек
Результат настроек

Теперь всё разложено по полочкам, красота.

Есть тут бэкендеры? Интересно, как у вас с этим дела?

Делитесь своим мнением в комментариях, ставьте реакции и спасибо, что следите за каналом!

33
Начать дискуссию