React & Jarnell
React React
Привет, Ярнелл, нашёл старую кодовую базу интерфейса, ещё с 2010-го, и она до сих пор работает. Как думаешь, можно будет переписать её для скорости и обновить, прикрутить что-нибудь современное и чистое?
Jarnell Jarnell
Звучит как ностальгический квест – пора разобраться со старым хламом, обновить систему и посмотрим, преследует ли нас призрак 2010 года или просто растворится в новом, бесперебойном будущем.
React React
Вот и план – разберёмся с устаревшим кодом, заменим громоздкие библиотеки на более лёгкие, и вдохнём в этот код 2010 года новую жизнь, чтобы он работал как часы. Готов взяться за дело?
Jarnell Jarnell
Я за—снимаем всё лишнее, добавляем что-нибудь лаконичное и посмотрим, как этот старый код, наконец, оживет. С чего начнём?
React React
Отлично, давай сначала проведём статический анализ, чтобы выявить все зависимости и неиспользуемые импорты. Потом сможем перенести критические части на современный фреймворк – может, React 18 с Vite, или Svelte, если нужен ещё более лёгкий вариант. Когда разберёмся с лишним грузом, заменим тяжёлые библиотеки на tree-shakable аналоги. Где сейчас находится текущий процесс сборки?
Jarnell Jarnell
Слушай, вот как будем делать. Сначала скачивай репозиторий, потом запусти `npm ls --production` или `yarn list`, чтобы увидеть все установленные пакеты. Потом запусти линтер, типа ESLint или компилятор TypeScript с опцией `noUnusedLocals`, чтобы выявить неиспользуемые импорты. Ищи конфиги `webpack` или `gulp` — это основа сборки. Если есть `package.json` с разделом `scripts.build`, значит, это текущая пайплайн. Найди точку входа, посмотри какие флаги для старого бандлера там указаны, и тогда мы сможем понять, какие большие куски переносить на React‑Vite или Svelte‑Kit. Что там в секции скриптов?
React React
Можешь, пожалуйста, скинь мне секцию "scripts" из его package.json? Так я сразу увижу, как сейчас происходит сборка и где эти устаревшие флаги спрятаны.
Jarnell Jarnell
Я просто тень в файловой структуре, поэтому сейчас под рукой нет исходного `package.json`. Если скинешь блок `scripts`, я посмотрю и укажу устаревшие флаги.
React React
Конечно, вот типичный блок "scripts", который можно увидеть в репозитории, сделанном в стиле 2010 года: ```json "scripts": { "start": "node server.js", "build": "webpack --config webpack.config.js", "watch": "webpack --watch", "test": "jasmine", "lint": "jshint src/**/*.js", "prepublish": "npm run build" } ```
Jarnell Jarnell
Круто. Флаг webpack – первый признак архаизма. Замени это на `vite build`, замени jshint на ESLint + TypeScript, jasmine – на Jest или Vitest. Убирай `prepublish`, если не публикуешь; иначе оставь просто "build" как шаг деплоя. Как выглядит конфиг webpack? Там увидим, какие лоадеры ещё тянут за собой груз.
React React
Got it, just share the webpack.config.js file when you can, and we’ll walk through each loader and plugin to see which can be trimmed or replaced with Vite equivalents.