Comments 15
в голосовалке не хватает пункта про исторический лисапед вокруг бабеля.
rollup хорош, но у меня не получилось настроить быструю пересборку проекта для девелоперского режима, любое изменение — 10 секунд пересборки, вебпак это делает за полсекунды, пока альттабаюсь в браузер
Интересно, если наш проект webpack в watch-режиме каждый раз пересобирает минимум секунд пять, а если добавился новый импорт — то и все двадцать, сколько там rollup провозится...
Это на самом деле палка на двух концах. С одной стороны Rollup быстрее собирает продакшен сборку, с другой в девелоперском режиме нельзя отключить treeshaking.
Но облегчить ситуацию всё таки можно, дело в том что webpack в девелоперском режиме отключает все оптимизации, из-за чего в angular можно наблюдать бандлы по 14мб. Конфиг Rollup тоже можно настроить на отключение всех минификаций в плагинах в режиме девелоп, что сильно ускорит сборку.
Но облегчить ситуацию всё таки можно, дело в том что 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?
Добавьте, пожалуйста, Broccoli в голосовалку.
У них разные задачи:
Gulp это Таск Менедджер — служит для организации задач, сам по себе ничего не умеет, а всю работу делает через дополнения, например тот же роллап.
Rollup это Бандлер — служит для сборки кода в бандл.
Раньше всякие библиотеки были не очень дружелюбны к консольным инструментам и gulp хорошо решал свою задачу по настройке и запуску таких библиотек. Сейчас же почти любая библиотека затачивается под работу из консоли, поэтому gulp и перестал пользоваться популярностью.
Gulp это Таск Менедджер — служит для организации задач, сам по себе ничего не умеет, а всю работу делает через дополнения, например тот же роллап.
Rollup это Бандлер — служит для сборки кода в бандл.
Раньше всякие библиотеки были не очень дружелюбны к консольным инструментам и gulp хорошо решал свою задачу по настройке и запуску таких библиотек. Сейчас же почти любая библиотека затачивается под работу из консоли, поэтому gulp и перестал пользоваться популярностью.
Sign up to leave a comment.
Rollup: уже можно собирать приложения