WTF is corepack?

Володимир Рожков

Я регулярно оновлюю всі залежності всіх проєктів на найновіші. Оскільки в мене в основному Rails та Java, то це тривіальні процедури: оновити версію Ruby на найновішу, що вийшла, а потім зробити bundle update. Жодна з версій залежностей в мене не залочена, тому я постійно живу на всьому останньому. В Java трішки складніше, там версії лочаться, тому треба піти й перевірити що зараз останнє, бо автокомпліт IntelliJ щось перестав працювати.

Звісно час від часу щось трохи відвалюється, але загалом все працює чудово, і я ніколи не маю проблем з тим що версії чого застаріли на два роки й оновитися дуже складно або просто неможливо.

Ось я вирішив оновити докерфайл проєкту, бо колись давно виникла проблема з alpine та однією з версій Ruby. Щось там крашилось, довелося змінити базовий імедж на debian-slim. Разом зі зміною я втратив jemalloc, але тоді це було не таким критичним.

Отже, я вирішив повернути все назад. Для Rails є гем (бібліотека), який генерує докерфайл, вже оптимізований, з шарами та усякими оптимізаціями щодо розміру імеджу на виході. Запустив-перегенерив.

Звернув увагу, що у мене не змінилась версія Yarn. Хто пам’ятає — це така альтернатива npm, яку написали у Facebook, коли npm був ще неоптимальним. З якоїсь причини це є дефолтний пакетний менеджер JS-залежностей в Rails. І от я дивлюся що він у мене версії типу 1.22.11 чи щось таке. Дивно, думаю, йду на офіційний сайт, а там пише що вже є 4.x.x. Дивлюся як його оновити, а там corepack enable⁣, а потім Yarn set version stable та Yarn install. WTF? Читаю далі, а виявляється що «we don’t tell you to run npm install -g yarn to install Yarn — we even recommend against it».

Коротше, в JavaScript придумали якусь штуку, що зветься corepack і тепер треба робити через неї. Також, вже досить давно, додали npx, але я не розумію, чим це відрізняється від npm.

Все як завжди. Поки в Java нічого не змінюється вже 10 (а то й більше) років і ти як запускав ./gradlew build, так і запускаєш, поки в Ruby ти як робив bundle install, так і робиш, джаваскріптери знову видумують щось нове.

Ну гаразд, ще можна відзначити Python, де vc-backed контора написала заміну pip, pyenv, virtualenv, poetry, setuptools та ще бозна-чому на Rust — uv. Зараз вона на хайпі, всі пісяють кіпятком, крім ортодоскальних пітоністів, які незадоволені тим, що пакетний менеджер Python написаний не на Python.

І це я ще не торкався теми фронтенду! Бо я так розумію, що вебпак уже давно потьмянів, і новий shiny object фронтендерів це Vite . То я ще не згадую про rollup (?), parcel (??) та esbuild (???), які можна використовувати для збірок фронтенду.

Зовсім забув про Bun та Deno! Що це, кому, навіщо?

Одним словом, джаваскріптова екосистема як була клоун фієстою 10 років тому, так такою й залишилась. І навіть стала гірше.

В чому причина? Популярність платформи? Ну так подивіться на Java або на PHP — там такої шляпи немає. Новизна? Камон, 10 років уже SPA-непотріб впевнено крокує по куцим просторам 8 Гб вашого макбуку, а ви так і не можете визначитися, чим ставити пакети.

Цей текст взято з особистого блогу після отримання дозволу автора.

Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту та натисніть Ctrl+Enter.

Останні статті

ChatGPT, моторошна долина та трохи Фройда

Днями я завзято нила про щось ChatGPT (експериментую між сеансами з живим терапевтом). І от…

17.04.2025

Я прийшла за покупками, а не крутити колесо

«Крутіть колесо, щоб отримати знижку до 50%!» «Натисніть тут, щоб відкрити таємничу пропозицію!» «Зареєструйтесь зараз,…

16.04.2025

Майже навайбкодив десктопний монітор CI пайплайнів

Дуже хочеться робити якісь десктопні апки. Сумую за часами коли всі програми були offline-first, і…

15.04.2025

Як працюють транзакційні комісії в мережах Bitcoin і Ethereum

Надсилаючи криптовалюту, багато новачків ставлять запитання: як працюють комісії та чому вони відрізняються в різних…

14.04.2025

Обережно, тепер вас можуть обдурити на співбесіді з роботодавцем

Нова афера набирає обертів — ось детальний розбір того, як фальшиві потенційні роботодавці намагаються вкрасти…

11.04.2025

Цілі застосунки в соцмережі? На останньому ETHKyiv Impulse довели, що це можливо

Соцмережа з можливістю вбудовувати повноцінні додатки прямо в пости — звучить як фантастика, але Farcaster…

10.04.2025