Налаштування бандлера Parcel для веб-проекту

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Налаштування бандлера Parcel для веб-проекту
Проста
від 4 годин до 2 робочих днів
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Налаштування бандлера Parcel для веб-проекту

Parcel — збирач з нульовою конфіги. Указуєшь вхідний файл, решта він визначає сам: знаходить залежності, вибирає трансформери, налаштовує tree-shaking. Це робить його відмінним вибором для швидкого старту проекту або прототипу, де не хочеться витрачати день на конфіг Webpack.

Встановлення та запуск

npm install --save-dev parcel

# Запуск dev-сервера — просто указуємо HTML
npx parcel index.html

# Production-побудова
npx parcel build index.html

Parcel читає index.html, знаходить все <script>, <link>, зображення, обробляє їх автоматично. TypeScript, JSX, CSS Modules, PostCSS — все підхоплюється без явної настройки, якщо стоїть потрібний пакет.

package.json конфігурація

{
  "scripts": {
    "dev": "parcel src/index.html --port 3000",
    "build": "parcel build src/index.html --no-source-maps",
    "clean": "rm -rf dist .parcel-cache"
  },
  "targets": {
    "default": {
      "browsers": "> 0.5%, last 2 versions, not dead",
      "outputFormat": "esmodule",
      "isLibrary": false
    }
  }
}

TypeScript та React

Встановлюємо залежності — Parcel підхоплює їх сам:

npm install react react-dom
npm install --save-dev typescript @types/react @types/react-dom

Мінімальний tsconfig.json:

{
  "compilerOptions": {
    "target": "ES2020",
    "module": "ESNext",
    "moduleResolution": "bundler",
    "jsx": "react-jsx",
    "strict": true,
    "skipLibCheck": true
  }
}

Після цього parcel src/index.html — і TypeScript працює без додаткової конфіги.

CSS Modules

/* Button.module.css */
.root {
  display: inline-flex;
  padding: 8px 16px;
  border-radius: 4px;
}
import styles from './Button.module.css';

export const Button = ({ children }: { children: React.ReactNode }) => (
  <button className={styles.root}>{children}</button>
);

Parcel автоматично обробляє .module.css як CSS Modules — хешує імена класів, типізує їх.

SCSS та PostCSS

npm install --save-dev sass

Достатньо перейменувати .css в .scss. Для PostCSS:

npm install --save-dev postcss autoprefixer

.postcssrc:

{
  "plugins": {
    "autoprefixer": {}
  }
}

Побудова бібліотеки

Parcel уміє збирати npm-пакети, читаючи main, module, types з package.json:

{
  "source": "src/index.ts",
  "main": "dist/index.cjs",
  "module": "dist/index.esm.js",
  "types": "dist/index.d.ts",
  "scripts": {
    "build": "parcel build"
  }
}

Алія шляхів

{
  "alias": {
    "@components": "./src/components",
    "@utils": "./src/utils"
  }
}

Секція alias в package.json — і імпорти вида import { Button } from '@components/Button' працюють.

Коли Parcel не підходить

  • Потрібен детальний контроль над chunk-splitting та імена файлів
  • Складна кастомна логіка в побудові (Parcel не передбачає обширної конфіги)
  • Команда вже добре знає Webpack/Vite та перехід створить більше питань, ніж вирішить

Терміни

Настройка Parcel для нового React/TypeScript проекту з нуля: 30–60 хвилин. Міграція існуючого проекту з Webpack на Parcel: 2–8 годин залежно від кількості кастомних настройок Webpack.