Forwarded from зачем алине канал
пакую сейчас одно приложение в электрон и чучуть в ахуе с количества блоата в node_modules
- из-за wontfix бага в пнпме peerDependencies у продовых зависимостей всегда считаются продовыми тоже, из-за чего dev-only зависимости попадают в продовый бандл (пример:
- в
-
- многие пакеты нынче тащат с собой d.ts тайпинги и сурсмапы, которые зачастую весят больше чем сам жс. -43мб
- многие пакеты нынче dual (cjs+esm). когда бандл будет только в есм гоняться, от cjs кода нет смысла. -10мб
итого 199мб -> 37мб, -81%🤷
в случае с электроном это *обычно* пекейджится через electron-builder, в который зашиты некоторые подобные глобы чтобы немного разгрузить .asar, но как можно заметить это фиксит разве что пункт 4…
глядя на это все начинаешь понимать как так происходит что электрон аппки весят под гигабайт.
виноват не столько электрон сколько сама экосистема… (хотя сам электрон тоже жирненький довольно, 260мб на макоси)
в теории это должно фикситься нормальным бандлингом/тришейкингом, но это нифига не тривиальная задача, особенно когда у тебя куча энтрипоинтов (воркеры), нативные аддоны, васм блобы, …
у меня большие надежды на electrobun, но учитывая какой кривой бан сам по себе (все еще!) – не знаю когда он прод-реди будет…
- из-за wontfix бага в пнпме peerDependencies у продовых зависимостей всегда считаются продовыми тоже, из-за чего dev-only зависимости попадают в продовый бандл (пример:
@trpc/server имеет typescript в peerDependencies, я у себя его имею в devDependencies в проекте, тс промоутится до продовой зависимости и не убирается с --prod). в других пакетниках та же хрень. пофиксив получаем -26мб- в
drizzle-orm@beta забыли прописать peerDependenciesMeta для mssql, из-за чего он автоматически встает как зависимость. пр с фиксом открыт три месяца. -74мб (втф)-
better-sqlite3 пакует в себя sqlite3.c (для сборки node-gyp в инсталл скрипте). -9мб- многие пакеты нынче тащат с собой d.ts тайпинги и сурсмапы, которые зачастую весят больше чем сам жс. -43мб
- многие пакеты нынче dual (cjs+esm). когда бандл будет только в есм гоняться, от cjs кода нет смысла. -10мб
итого 199мб -> 37мб, -81%
в случае с электроном это *обычно* пекейджится через electron-builder, в который зашиты некоторые подобные глобы чтобы немного разгрузить .asar, но как можно заметить это фиксит разве что пункт 4…
глядя на это все начинаешь понимать как так происходит что электрон аппки весят под гигабайт.
виноват не столько электрон сколько сама экосистема… (хотя сам электрон тоже жирненький довольно, 260мб на макоси)
в теории это должно фикситься нормальным бандлингом/тришейкингом, но это нифига не тривиальная задача, особенно когда у тебя куча энтрипоинтов (воркеры), нативные аддоны, васм блобы, …
у меня большие надежды на electrobun, но учитывая какой кривой бан сам по себе (все еще!) – не знаю когда он прод-реди будет…
Please open Telegram to view this post
VIEW IN TELEGRAM
🙏3🍓2😁1