Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

Webpack — bundling pro moderní frontend

15. 01. 2016 1 min čtení CORE SYSTEMSdevelopment

JavaScript aplikace rostou. Desítky souborů, stovky závislostí, SASS kompilace, minifikace, source mapy. Grunt a Gulp na to nestačí. Webpack přistupuje k buildu jako k dependency grafu — a mění pravidla hry.

Module bundler, ne task runner

Grunt a Gulp jsou task runnery — definujete úlohy a spouštíte je sekvenčně. Webpack je module bundler — analyzuje import/require závislosti a vytvoří optimální bundle. Loaders transformují soubory (SASS → CSS, ES6 → ES5), plugins postprocessují (minifikace, extraction).

Konfigurace

module.exports = {
  entry: './src/index.js',
  output: {
    path: './dist',
    filename: 'bundle.[hash].js'
  },
  module: {
    loaders: [
      { test: /\.js$/, loader: 'babel', exclude: /node_modules/ },
      { test: /\.scss$/, loader: 'style!css!sass' },
      { test: /\.(png|jpg)$/, loader: 'url?limit=8192' }
    ]
  },
  plugins: [
    new webpack.optimize.UglifyJsPlugin(),
    new ExtractTextPlugin('styles.[hash].css')
  ]
};

Hot Module Replacement

webpack-dev-server s HMR — změníte SASS, CSS se aktualizuje bez reloadu stránky. Změníte React komponentu, překreslí se bez ztráty state. Development experience na jiné úrovni.

Code splitting

Webpack umí rozdělit bundle na chunky — lazy loading pro routes. Uživatel stáhne jen kód, který potřebuje. Zásadní pro velké SPA.

Webpack je nový standard

Křivka učení je strmější než u Grunt/Gulp, ale výsledek stojí za to. Pro moderní frontend s React/Angular je webpack de facto standard.

webpackjavascriptbuildfrontend