Pull to refresh

Comments 15

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

Интересно, если наш проект webpack в watch-режиме каждый раз пересобирает минимум секунд пять, а если добавился новый импорт — то и все двадцать, сколько там rollup провозится...

Это на самом деле палка на двух концах. С одной стороны Rollup быстрее собирает продакшен сборку, с другой в девелоперском режиме нельзя отключить treeshaking.

Но облегчить ситуацию всё таки можно, дело в том что webpack в девелоперском режиме отключает все оптимизации, из-за чего в angular можно наблюдать бандлы по 14мб. Конфиг Rollup тоже можно настроить на отключение всех минификаций в плагинах в режиме девелоп, что сильно ускорит сборку.
нельзя отключить treeshaking

Так ведь можно же


treeshake
Type: boolean | { propertyReadSideEffects?: boolean, pureExternalModules?: boolean }
CLI: --treeshake/--no-treeshake
Default: true

Whether or not to apply tree-shaking and to fine-tune the tree-shaking process. Setting this option to false will produce bigger bundles but may improve build performance. If you discover a bug caused by the tree-shaking algorithm, please file an issue! Setting this option to an object implies tree-shaking is enabled and grants the following additional options:
Вы сравниваете результат сборки rollup'ом в iife с результатом сборки webpack'ом в commonjs. Это не честно. Что выдаёт rollup в формате commonjs?
Показан не результат сборки, а сама возможность сборки в iife. В Commonjs ситуация следующая:
  • Относительно Browserify и Webpack2 размер бандла iife меньше на 30%
  • Относительно Webpack 4 при сборке es5 из esnext бандл iife на 10% меньше
  • Относительно Webpack 4 при сборке es2015+ разница стремится к 0
  • Если оба бандлера собрать в commonjs и es2015, то они соберут одно и тоже, за той разницей что rollup поэффективнее мертвый код удалит, но commonjs придется отдельно подключать, тогда как webpack сам включит его в бандл.
Спасибо, поправил.
Parcel с флагом --experimental-scope-hoisting тоже умеет в IIFE собирать.
А на сколько хорошо будет работать treeShaking на большом проекте? И на сколько будет отличаться результат от сборки webpack?
По сравнению с webpack 2, на 30% эффективнее, но если собирать в webpack 4 в es2015+, то разница стремится к 0.

Добавьте, пожалуйста, Broccoli в голосовалку.

Спасибо за статью LabEG, не знал про роллап!

Че-то такое ощущение, что по конфигу напоминает Gulp? Можете прокомментировать, в чем разница и минусы обеих продуктов?
У них разные задачи:
Gulp это Таск Менедджер — служит для организации задач, сам по себе ничего не умеет, а всю работу делает через дополнения, например тот же роллап.
Rollup это Бандлер — служит для сборки кода в бандл.

Раньше всякие библиотеки были не очень дружелюбны к консольным инструментам и gulp хорошо решал свою задачу по настройке и запуску таких библиотек. Сейчас же почти любая библиотека затачивается под работу из консоли, поэтому gulp и перестал пользоваться популярностью.
Sign up to leave a comment.

Articles