Ми часто стикаємося з проектами, де збірка на Webpack займає хвилини, а не секунди. Розробники витрачають час на очікування, а клієнти — гроші. Rspack — збірник від ByteDance (TikTok), написаний на Rust із webpack-сумісним API — вирішує цю проблему. За нашими даними, заміна Webpack на Rspack на типовому React-проекті з 2000+ компонентів скорочує час dev-збірки з 45 до 8 секунд, а повну продакшен-збірку — з 120 до 15 секунд. Це прискорення безпосередньо зменшує витрати на розробку: менше часу на збірку — більше часу на фічі. Головна ідея: взяти існуючий webpack-конфіг, змінити require('webpack') на require('@rspack/core'), отримати збірку в 5–10 разів швидше без переписування конфігурації. На практиці сумісність не стовідсоткова, але для більшості проектів — цілком робочий шлях. Замовте налаштування Rspack під ключ — ми гарантуємо сумісність і швидкий результат.
Чому Rspack, а не Vite?
Vite — чудовий вибір для нового проекту. Rspack потрібен коли:
- Уже є великий webpack-конфіг, який складно переписувати під Vite
- Використовуються специфічні webpack-плагіни без аналогів у Vite
- Потрібна сумісність з Module Federation (Rspack підтримує MF v1 і v2)
- Проект використовує Rsbuild або Rsdoctor з екосистеми ByteDance
Vite використовує нативну модульну систему браузера в dev-режимі, але на продакшені збирає через Rollup. Rspack використовує єдиний Rust-двигун для dev і build, що спрощує конфігурацію та прискорює фінальну збірку. Якщо ви вже використовуєте Rsbuild, міграція на Rspack відбувається ще швидше — достатньо змінити адаптер.
Як мігрувати з Webpack на Rspack
Типова міграція займає від 4 до 8 годин. Насамперед встановлюємо пакети: npm install --save-dev @rspack/core @rspack/cli. Потім замінюємо скрипти в package.json: "dev": "rspack dev" і "build": "rspack build". Після цього перейменовуємо webpack.config.js на rspack.config.js і замінюємо імпорт: const { rspack } = require('@rspack/core') замість const webpack = require('webpack'). Нарешті, адаптуємо вбудовані плагіни: webpack.DefinePlugin → rspack.DefinePlugin, HtmlWebpackPlugin → rspack.HtmlRspackPlugin, MiniCssExtractPlugin → rspack.CssExtractRspackPlugin. Якщо використовуєте ProgressPlugin або BannerPlugin, їх аналоги є в @rspack/core.
| Параметр | Webpack (v5) | Rspack |
|---|---|---|
| Перша dev-збірка | 45 с | 8 с |
| Hot reload | 2 с | 0,5 с |
| Prod-збірка | 120 с | 15 с |
| Розмір бандла | 500 КБ | 510 КБ |
Як швидко налаштувати Rspack для React-проекту?
Типовий rspack.config.ts для React-проекту з TypeScript виглядає так:
import { defineConfig } from '@rspack/cli'; import { rspack } from '@rspack/core'; import path from 'path'; export default defineConfig({ entry: { main: './src/index.tsx', }, output: { filename: '[name].[contenthash:8].js', path: path.resolve(__dirname, 'dist'), clean: true, }, resolve: { extensions: ['.tsx', '.ts', '.jsx', '.js'], alias: { '@': path.resolve(__dirname, 'src'), }, }, module: { rules: [ { test: /\.(tsx?|jsx?)$/, use: { loader: 'builtin:swc-loader', options: { jsc: { parser: { syntax: 'typescript', tsx: true, }, transform: { react: { runtime: 'automatic', development: process.env.NODE_ENV === 'development', refresh: process.env.NODE_ENV === 'development', }, }, }, env: { targets: 'Chrome >= 90', }, }, }, exclude: /node_modules/, }, { test: /\.css$/, use: [rspack.CssExtractRspackPlugin.loader, 'css-loader', 'postcss-loader'], }, { test: /\.(png|jpe?g|svg|gif|webp)$/i, type: 'asset', parser: { dataUrlCondition: { maxSize: 8 * 1024 }, }, }, ], }, plugins: [ new rspack.HtmlRspackPlugin({ template: './public/index.html', filename: 'index.html', }), new rspack.CssExtractRspackPlugin({ filename: '[name].[contenthash:8].css', }), new rspack.DefinePlugin({ 'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV), }), ], optimization: { splitChunks: { chunks: 'all', cacheGroups: { vendor: { test: /[\\/]node_modules[\\/]/, name: 'vendors', priority: 10, }, }, }, }, devServer: { port: 3000, historyApiFallback: true, hot: true, }, }); Module Federation з Rspack
Rspack підтримує Module Federation v2 через @module-federation/enhanced:
import { ModuleFederationPlugin } from '@module-federation/enhanced/rspack'; plugins: [ new ModuleFederationPlugin({ name: 'host_app', remotes: { remote_ui: 'remote_ui@http://localhost:3001/remoteEntry.js', }, shared: { react: { singleton: true, requiredVersion: '^18.0.0' }, 'react-dom': { singleton: true }, }, }), ] Що таке Rsbuild?
Rsbuild — обгортка над Rspack з готовою конфігурацією, схожа на Vite. Вона надає плагіни для React, Vue, SASS тощо. Якщо ви починаєте новий проект без legacy webpack-конфігу, Rsbuild — найкращий вибір. Налаштування нового React/TypeScript проекту займає 1–2 години.
Сумісність плагінів
Більшість webpack-плагінів працюють з Rspack, але є винятки. Перевірені плагіни перераховані на офіційному сайті Rspack. З несумісних: деякі плагіни, що використовують низькорівневі webpack compilation hooks (compiler.hooks.thisCompilation, кастомні tapable-хуки). Перевірити конкретний плагін можна командою:
rspack build 2>&1 | grep -i "unsupported\|warning\|deprecated" Типові помилки при міграції
- Не збігаються target і оточення: Rspack за замовчуванням збирає для Node.js, якщо не вказано
target: 'web'. - Плагіни, що працюють через compilation.hooks: наприклад,
webpack-manifest-pluginможе вимагати адаптації. - Використання
require.context: у Rspack працює, але з обмеженнями. Краще замінити наimport.meta.globз Rsbuild.
Що входить у налаштування Rspack
- Повна міграція конфігурації з Webpack на Rspack
- Адаптація плагінів і завантажувачів
- Налаштування Module Federation (за потреби)
- Оптимізація split chunks та кешування
- Документація щодо змін
- Навчання команди базовим принципам
- Підтримка протягом місяця після налаштування
Строки та вартість
Строки залежать від складності проекту. Заміна Webpack на Rspack без Module Federation — від 4 до 8 годин. Налаштування Rsbuild з нуля — 1–2 години. Інтеграція Module Federation між декількома додатками — 1–2 дні. Вартість розраховується індивідуально. Налаштування Rspack окупається за 1–2 місяці завдяки економії часу команди. Зв'яжіться з нами — ми оцінимо ваш проект і запропонуємо оптимальне рішення. Замовте налаштування Rspack — прискорте розробку.
Наша компанія має понад 5 років досвіду у веб-розробці та реалізувала понад 50 проектів з використанням сучасних бандлерів. Ми гарантуємо сумісність з вашою екосистемою та прискорення збірки до 10 разів.







