intermediate
Webpack
Настраивайте loaders, plugins, оптимизацию графа модулей, code splitting, ассеты и миграции долгоживущих проектов.
Webpack строит граф модулей и преобразует файлы через loaders (на файл) и plugins (на весь граф). Остаётся популярным в крупных приложениях из‑за глубокой настройки и enterprise-интеграций.
| Понятие | Роль | |---------|------| | Loader | Преобразование типа модуля (TS, CSS, assets) | | Plugin | Оптимизация графа, HTML, split chunks | | `splitChunks` | Разделение vendor и async routes | | `sideEffects` | Подсказки tree-shaking в `package.json` |
module.exports = {
module: {
rules: [{ test: /\.tsx?$/, use: 'ts-loader' }],
},
optimization: { splitChunks: { chunks: 'all' } },
};
Dev server и persistent cache ускоряют итерации. Source maps и bundle analyzer диагностируют размер production.
На интервью: loaders vs plugins, code splitting, лимиты tree-shaking с CJS, long-term cache имён файлов и миграция с Webpack.
Типовые ошибки: раздутый config и медленные сборки; импорт целых библиотек; игнор `sideEffects`.
Компромисс — гибкость и экосистема против стоимости конфигурации и времени сборки.
Чеклист:
- Роли loader и plugin.
- Анализ бандла.
- `sideEffects` соответствует модулям.
- Кэш с дисциплиной инвалидации.