Загрузка модуля ParcelJS против Webpack

Я пытаюсь углубить свое понимание модулей в JavaScript, а не просто использовать модули CommonJS, AMD и ES.

Это привело к тому, что я больше изучил веб-пакет, чтобы понять, как он на самом деле заставляет модули работать в браузере, не полагаясь на все еще относительно новые модули ES. Насколько я понимаю, Webpack связывает JS, преобразовывая операторы import и require в свои собственные операторы, и поставляет его со средой выполнения и манифестом, который позволяет ему выполнять их. Итак, Webpack преодолел отсутствие поддержки модулей, в основном реализовав свой собственный?

Я пытался сравнить это с другим сборщиком — Parcel, но не могу найти никакой информации о том, как он обрабатывает модули.

Кто-нибудь знает, правильно ли я понимаю Webpack, и как это соотносится с тем, как это делает Parcel?

Оцените любую помощь заранее.

Спасибо


person Tophat Gordon    schedule 27.09.2020    source источник


Ответы (1)


Реализация синтаксиса импорта/экспорта ES6 сделала многие традиционные загрузчики модулей, такие как RequireJS/AMD и rollup, несколько устаревшими. Однако сборщики ресурсов, такие как Webpack и Parcel, по-прежнему находят свое место в современной веб-разработке.

Сборщик ресурсов упаковывает несколько файлов в меньший набор файлов (включая JS, изображения, шрифты, LESS, SCSS и т. д.), тем самым уменьшая количество запросов к серверу и коммуникационные издержки. Процесс объединения обычно включает минимизацию скриптов, удаление мертвого кода и управление зависимостями. Это также позволяет использовать более модульную интерфейсную веб-разработку.

В некотором смысле Parcel, будучи более новым, более продвинут, чем Webpack. Parcel поддерживает множество различных языков и типов файлов из коробки, от веб-технологий, таких как HTML, CSS и JavaScript, до языков более низкого уровня, таких как Rust, и всего, что компилируется в WebAssembly (WASM), до ресурсов, таких как изображения, шрифты, видео, и более. Вы можете создавать несколько целей одновременно и обновлять их в режиме реального времени по мере внесения изменений. Parcel компилирует все ваши файлы изолированно и параллельно внутри воркеров, кэшируя их все по мере продвижения. Для разделения кода с помощью динамических операторов import() не требуется явная настройка.

И Webpack, и Parcel предоставляют вам сервер разработки для тестирования вашего проекта в браузере. В отличие от Webpack, точкой входа Parcel является файл HTML, а не файл JS. Вы не должны объявлять type="module" в тегах ‹script›.

Еще один сборщик ресурсов — Browserify. Это более простой инструмент, который просто объединяет ваши файлы. Он не так богат функциями, как Webpack и Parcel.

person Chong Lip Phang    schedule 28.09.2020