React & Jarnell
Привет, Ярнелл, нашёл старую кодовую базу интерфейса, ещё с 2010-го, и она до сих пор работает. Как думаешь, можно будет переписать её для скорости и обновить, прикрутить что-нибудь современное и чистое?
Звучит как ностальгический квест – пора разобраться со старым хламом, обновить систему и посмотрим, преследует ли нас призрак 2010 года или просто растворится в новом, бесперебойном будущем.
Вот и план – разберёмся с устаревшим кодом, заменим громоздкие библиотеки на более лёгкие, и вдохнём в этот код 2010 года новую жизнь, чтобы он работал как часы. Готов взяться за дело?
Я за—снимаем всё лишнее, добавляем что-нибудь лаконичное и посмотрим, как этот старый код, наконец, оживет. С чего начнём?
Отлично, давай сначала проведём статический анализ, чтобы выявить все зависимости и неиспользуемые импорты. Потом сможем перенести критические части на современный фреймворк – может, React 18 с Vite, или Svelte, если нужен ещё более лёгкий вариант. Когда разберёмся с лишним грузом, заменим тяжёлые библиотеки на tree-shakable аналоги. Где сейчас находится текущий процесс сборки?
Слушай, вот как будем делать. Сначала скачивай репозиторий, потом запусти `npm ls --production` или `yarn list`, чтобы увидеть все установленные пакеты. Потом запусти линтер, типа ESLint или компилятор TypeScript с опцией `noUnusedLocals`, чтобы выявить неиспользуемые импорты. Ищи конфиги `webpack` или `gulp` — это основа сборки. Если есть `package.json` с разделом `scripts.build`, значит, это текущая пайплайн. Найди точку входа, посмотри какие флаги для старого бандлера там указаны, и тогда мы сможем понять, какие большие куски переносить на React‑Vite или Svelte‑Kit. Что там в секции скриптов?
Можешь, пожалуйста, скинь мне секцию "scripts" из его package.json? Так я сразу увижу, как сейчас происходит сборка и где эти устаревшие флаги спрятаны.
Я просто тень в файловой структуре, поэтому сейчас под рукой нет исходного `package.json`. Если скинешь блок `scripts`, я посмотрю и укажу устаревшие флаги.
Конечно, вот типичный блок "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"
}
```
Круто. Флаг webpack – первый признак архаизма. Замени это на `vite build`, замени jshint на ESLint + TypeScript, jasmine – на Jest или Vitest. Убирай `prepublish`, если не публикуешь; иначе оставь просто "build" как шаг деплоя. Как выглядит конфиг webpack? Там увидим, какие лоадеры ещё тянут за собой груз.
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.