К основному содержанию
скилл CX Codex

webpack-bundler — скилл для Claude Code: настройка Webpack

Скилл задаёт агенту правила работы с конфигами Webpack: разбиение бандла, tree shaking, лоадеры и плагины. Пригодится, когда сборка распухла или собирается слишком долго.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add Mindrally/skills --skill webpack-bundler -a claude-code
Открыть на GitHub

Что делает webpack-bundler

Скилл описывает, как агент должен править webpack.config.js и связанный код. Внутри — рекомендации по точкам входа и выходу, режимам production и development, динамическим импортам и splitChunks с отдельной группой для node_modules.

Отдельные разделы про tree shaking: синтаксис ES-модулей, sideEffects в package.json и @babel/preset-env с modules: false. Есть готовые блоки конфигурации для babel-loader, ts-loader, css-loader со style-loader и sass-loader, а также для картинок через asset/resource. Из плагинов названы HtmlWebpackPlugin, MiniCssExtractPlugin и BundleAnalyzerPlugin.

Производительность сборки скилл советует поднимать через файловый кэш, TerserPlugin с parallel и runtimeChunk: 'single'. Анти-паттерны перечислены прямо: не собирать всё в один файл, не тянуть библиотеку целиком ради пары функций, не выкидывать source maps в разработке. Без установленных webpack-bundle-analyzer и terser-webpack-plugin часть примеров из скилла не заработает — это повод свериться с package.json до того, как агент начнёт править конфиг.

Какие задачи решает

  • разбить бандл на vendor и основной чанк
  • включить tree shaking и убрать мёртвый код
  • настроить лоадеры для SCSS и картинок
  • ускорить пересборку через файловый кэш
  • найти тяжёлые зависимости анализатором бандла

Примеры запросов агенту

  • Раздели бандл: вынеси всё из node_modules в отдельный vendors-чанк через splitChunks
  • Почему tree shaking не работает? Проверь sideEffects в package.json и настройки Babel
  • Добавь в конфиг webpack-bundle-analyzer и покажи, что занимает больше всего места

Как установить webpack-bundler

1Через Skills CLI (Vercel)

npx skills add Mindrally/skills --skill webpack-bundler -a claude-code

2Вручную: положить файлы

~/.claude/skills/webpack-bundler/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/webpack-bundler/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о webpack-bundler

Как установить webpack-bundler в Claude Code?

Выполни npx skills add Mindrally/skills --skill webpack-bundler -a claude-code. Файл скилла окажется в ~/.claude/skills/webpack-bundler/SKILL.md.

Что делает webpack-bundler?

Даёт агенту набор правил по конфигурации Webpack: точки входа, code splitting, tree shaking, лоадеры, плагины и оптимизация продакшен-сборки.

Для каких версий Webpack этот скилл?

Он опирается на возможности Webpack 5 и выше — в частности на asset/resource и файловый кэш.

Исходный текст

SKILL.md · Apache-2.0
---
name: webpack-bundler
description: Best practices and guidelines for Webpack module bundler configuration, optimization, and development workflows
metadata:
  maintainer: Mindrally
  source: https://github.com/Mindrally/skills
---

# Webpack Bundler

You are an expert in Webpack, the powerful module bundler for JavaScript applications. Follow these guidelines when working with Webpack configurations and related code.

## Core Principles

- Webpack is a static module bundler that builds a dependency graph from entry points
- Focus on optimal bundle size, build performance, and developer experience
- Use Webpack 5+ features for best practices and performance
- Understand the plugin and loader ecosystem

## Project Structure

```
project/
├── src/
│   ├── index.js          # Main entry point
│   ├── components/       # UI components
│   ├── utils/            # Utility functions
│   ├── styles/           # CSS/SCSS files
│   └── assets/           # Images, fonts, etc.
├── dist/                 # Build output (gitignored)
├── webpack.config.js     # Main configuration
├── webpack.dev.js        # Development config
├── webpack.prod.js       # Production config
└── package.json
```

## Configuration Best Practices

### Entry and Output

```javascript
module.exports = {
  entry: {
    main: './src/index.js',
    vendor: './src/vendor.js'
  },
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: '[name].[contenthash].js',
    clean: true
  }
};
```

### Mode Configuration

```javascript
module.exports = {
  mode: 'production', // or 'development'
  // production mode enables tree-shaking, minification, and optimizations
};
```

## Code Splitting

### Dynamic Imports

```javascript
// Use dynamic imports for on-demand loading
const module = await import('./heavy-module.js');

// With React
const LazyComponent = React.lazy(() => import('./LazyComponent'));
```

### SplitChunks Configuration

```javascript
optimization: {
  splitChunks: {
    chunks: 'all',
    cacheGroups: {
      vendor: {
        test: /[\\/]node_modules[\\/]/,
        name: 'vendors',
        chunks: 'all'
      }
    }
  }
}
```

## Tree Shaking

### Enable Tree Shaking

1. Use ES6 module syntax (import/export)
2. Set `mode: 'production'`
3. Configure `sideEffects` in package.json

```json
{
  "sideEffects": false
}
```

Or specify files with side effects:

```json
{
  "sideEffects": ["*.css", "*.scss"]
}
```

### Babel Configuration for Tree Shaking

```json
{
  "presets": [
    ["@babel/preset-env", { "modules": false }]
  ]
}
```

## Loaders

### Common Loader Configuration

```javascript
module: {
  rules: [
    {
      test: /\.jsx?$/,
      exclude: /node_modules/,
      use: 'babel-loader'
    },
    {
      test: /\.tsx?$/,
      exclude: /node_modules/,
      use: 'ts-loader'
    },
    {
      test: /\.css$/,
      use: ['style-loader', 'css-loader']
    },
    {
      test: /\.scss$/,
      use: ['style-loader', 'css-loader', 'sass-loader']
    },
    {
      test: /\.(png|svg|jpg|jpeg|gif)$/i,
      type: 'asset/resource'
    }
  ]
}
```

## Plugins

### Essential Plugins

```javascript
const HtmlWebpackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');

plugins: [
  new HtmlWebpackPlugin({
    template: './src/index.html'
  }),
  new MiniCssExtractPlugin({
    filename: '[name].[contenthash].css'
  }),
  // Use for bundle analysis
  new BundleAnalyzerPlugin()
]
```

## Performance Optimization

### Bundle Size Optimization

- Use `webpack-bundle-analyzer` to identify large dependencies
- Enable tree shaking to remove unused code
- Replace large dependencies with smaller alternatives
- Enable Gzip or Brotli compression

### Build Performance

```javascript
module.exports = {
  cache: {
    type: 'filesystem'
  },
  resolve: {
    extensions: ['.js', '.jsx', '.ts', '.tsx'],
    alias: {
      '@': path.resolve(__dirname, 'src')
    }
  }
};
```

### Production Optimization

```javascript
optimization: {
  minimize: true,
  minimizer: [
    new TerserPlugin({
      parallel: true
    }),
    new CssMinimizerPlugin()
  ],
  moduleIds: 'deterministic',
  runtimeChunk: 'single'
}
```

## Development Server

```javascript
devServer: {
  static: './dist',
  hot: true,
  port: 3000,
  historyApiFallback: true,
  proxy: {
    '/api': 'http://localhost:8080'
  }
}
```

## Environment Variables

```javascript
const webpack = require('webpack');

plugins: [
  new webpack.DefinePlugin({
    'process.env.API_URL': JSON.stringify(process.env.API_URL)
  })
]
```

## Common Anti-Patterns to Avoid

- Do not bundle everything into a single file
- Avoid importing entire libraries when only specific functions are needed
- Do not skip source maps in development
- Avoid hardcoding environment-specific values
- Do not ignore bundle size warnings

## Testing and Debugging

- Use source maps for debugging (`devtool: 'source-map'`)
- Analyze bundles regularly with `webpack-bundle-analyzer`
- Test production builds locally before deployment
- Use `stats` option to understand build output

## Security Considerations

- Keep Webpack and plugins up to date
- Validate and sanitize all user inputs
- Use Content Security Policy headers
- Avoid exposing sensitive data in bundles

## Integration with CI/CD

- Cache node_modules and Webpack cache
- Run production builds with `--mode production`
- Fail builds on bundle size budget violations
- Generate and store bundle analysis reports

© Mindrally · Apache-2.0 · Mindrally/skills

Похожие скиллы

Все скиллы по теме «Фронтенд и UI» →
tree-shaking patterns.dev Скилл объясняет tree shaking и подсказывает агенту, как убрать неиспользуемые экспорты из JavaScript-бандла. Пригодится, когда сборка тянет лишнее. CX Codex +1 1 400установок bundle-size-optimization aj-geddes Помогает уменьшить размер JS и CSS бандлов через разделение кода и tree shaking. Пригодится при настройке сборки или после добавления тяжёлых зависимостей. CX Codex +1 561установок bun-bundler secondsky Скилл обучает агента собирать проекты на JavaScript и TypeScript через Bun. Пригодится при настройке CLI-сборки или переходе на API Bun.build. CX Codex +1 400установок optimize-bundle-size davila7 Анализирует и уменьшает размер фронтенд-сборки через настройку бандлера, код-сплиттинг и удаление мёртвого кода. Пригодится при росте веса JS-бандла и падении скорости загрузки страниц. 535установок plugin-bundle-size grafana Помогает уменьшить размер входного файла module.js в плагинах приложений Grafana через React.lazy и разделение чанков в Webpack. CX Codex +1 4 200установок react-vite-best-practices agent-skills Скилл с 23 правилами оптимизации React-приложений на Vite: сборка, code splitting, HMR, ассеты, переменные окружения и анализ бандла. Пригодится, когда агент пишет или ревьюит компоненты. CX Codex +1 2 900установок

Из того же набора236

angular Скилл настраивает ИИ-помощника на стандарты Angular и TypeScript: генерацию standalone-компонентов, реактивность на сигналах и отказ от типа any. CX Codex +1 816установок hono-typescript Задаёт агенту правила разработки API на Hono и TypeScript под Cloudflare Workers, Deno, Bun и Node.js. Пригодится, когда проект уже на Hono или только переезжает на него. CX Codex +1 819установок motion Задаёт агенту правила работы с библиотекой Motion в чистом JavaScript и TypeScript. Помогает писать быстрые веб-анимации на GPU без просадок кадров. CX Codex +1 812установок web-development Скилл с правилами веб-разработки: сетка Bootstrap, вьюхи и модели Django, атрибуты HTMX. Пригодится, когда агент пишет шаблоны и бэкенд в одном проекте. CX Codex +1 815установок three-js Задаёт правила разработки на Three.js и React Three Fiber: код на TypeScript, очистка ресурсов и оптимизация рендера. CX Codex +1 798установок blazor Скилл задаёт агенту правила разработки на Blazor: жизненный цикл компонентов, привязка данных, управление состоянием и оптимизация рендеринга. CX Codex +1 798установок ionic Задаёт агенту правила разработки на Ionic: структура проекта, компоненты, стили, ленивая загрузка и работа с Firebase. CX Codex +1 797установок general-best-practices Скилл задаёт агенту свод правил по качеству кода, тестам, безопасности и архитектуре. Пригодится, когда нужно, чтобы ИИ писал код в одном стиле во всём проекте. CX Codex +1 794установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой