Мы часто сталкиваемся с проектами, где сборка на 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 раз.







