4 крутых настройки всего за 4 минуты

Когда мы говорим о сборщиках модулей для Интернета, сразу приходит на ум webpack. Конечно, он работает хорошо, но у него есть один большой недостаток.

Webpack сложно настроить. Даже для первого простого примера кода в официальной документации нам понадобится файл конфигурации - печально известный webpack.config.js.

Именно здесь на помощь приходит Parcel - пакетировщик - это инструмент с нулевой конфигурацией.
Верно, нам не нужно сначала создавать файл конфигурации - Parcel точно знает, что нам нужно.

Вот несколько примеров, которые наверняка вас заинтересуют.

Привет, мир с посылкой

Все, что вам нужно, это интерфейс командной строки - он сделает всю работу за вас.
Вы можете установить его следующим образом:

yarn global add parcel-bundler npm install -g parcel-bundler

Затем вы запускаете npm init -y или yarn init -y и создаете index.html.

Теперь вы можете написать код. Вы можете легко включить файл JavaScript с тегом сценария и выполнить код. Parcel это понимает. Код JavaScript автоматически минимизируется, имена переменных меняются, и код компилируется.

Это означает, что современные функции JavaScript и синтаксический сахар превращаются в безопасный для браузера код. Вот пример.

В коде вы можете увидеть стрелочную функцию и класс. Оба являются «продвинутыми» функциями JS. Обратитесь к сценарию из index.htm с тегом сценария. Затем запустите parcel build index.html. Готово - рабочая версия сайта сохранена в каталоге «dist».

Вот как выглядит рабочий JavaScript:

Да, без ключевого слова класса и без стрелочной функции. Parcel оптимизировал наш код без каких-либо настроек или конфигураций.

Время для TypeScript!

TypeScript очень удобен. Но у него есть небольшой недостаток - сначала нужно настроить TS. Но даже здесь Parcel нам помогает. Просто вернитесь в свой index.html и импортируйте app.ts вместо app.js - да, это правильно, даже если он кажется вам незнакомым.

Используя parcel index.html в качестве сервера разработки или parcel build index.html в качестве производственной сборки, вы можете запускать код.
Вот простой пример кода TypeScript:

function doubleNumber(a: number):number {
  return a * 2;
}
console.log(doubleNumber(20))

Код автоматически преобразуется в код JavaScript программой Parcel.

Но, а как насчет фреймворков?

Давайте посмотрим на React.js (да, это библиотека, но вы поняли).
Во-первых, нам нужно установить все, что нужно для работы React:
npm install react react-dom. Как и раньше, у нас есть только index.html, который импортирует наш app.js. В app.js мы можем написать следующий код:

Все это кажется знакомым, не так ли? В текущей версии React & CRA вам больше не нужен оператор импорта. В Parcel вы это делаете - это единственная реальная разница.

WebAssembly!

Хорошие новости: опять же, вам не нужно ничего устанавливать. Чтобы превратить C-код в WebAssembly, мы используем онлайн-среду IDE webassembly.studio.

Откройте его, выберите «Пустой проект C». Затем перейдите на main.c и добавьте следующую функцию:

int add(int a, int b) {
  return a + b;
}

Затем выберите «построить» вверху панели. Теперь вы можете загрузить main.wasm, щелкнув правой кнопкой мыши вкладку файлов слева.

Рядом с app.js и index.html он входит в наш проект.
Wasm-файл содержит скомпилированный код WebAssembly - он больше не читается человеком.

Теперь мы можем вызвать функцию, которую только что написали на C, в app.js:

import { add } from "./main.wasm"
console.log(add(2, 4))

В консоли браузера вы должны теперь увидеть цифру «6» в качестве вывода - поздравляем, вы только что использовали C-функцию в Интернете!

Приятно иметь: прямая поддержка JSON

На самом деле работать с JSON в JavaScript не так уж и сложно. Исключение составляют случаи, когда у нас есть JSON в виде файла и мы хотим его импортировать. Опять же, Parcel помогает и творит чудеса незаметно для нас.

Помимо app.js и index.html, я создаю cars.json со следующим содержимым:

Мы можем легко импортировать и использовать этот файл JSON в app.js:

import cars from "./cars.json"
console.log(cars.Lambo.color)
// "green"

Подводя итоги

Я не ненавижу веб-пакеты. Однако даже для небольших проектов в Webpack есть что настроить. Вот почему мне нравится Parcel, особенно для небольших приложений. Вам также следует взглянуть на официальную документацию. Он снова и снова показывает, как Parcel можно использовать с довольно необычными технологиями. Относительно новым является, например, поддержка Rust & Elm.

Спасибо за чтение!

Подпишитесь на мою рассылку, чтобы быть в курсе