rsbuild-dev
Run development tasks including build, dev server, linting, formatting, and Rsbuild configuration. Use when building the project, starting dev server, fixing lint errors, formatting code, or configuring Rsbuild.
When & Why to Use This Skill
This Claude skill provides a comprehensive suite for managing Rsbuild-based development environments. It automates core tasks including starting high-performance development servers with Hot Module Replacement (HMR), generating optimized production builds, and maintaining code quality through integrated linting and formatting tools. Designed for modern web development, it simplifies configuration management for React and TypeScript projects, ensuring a seamless workflow from local coding to production deployment.
Use Cases
- Starting a local development server with HMR to enable rapid UI iteration and real-time feedback during coding.
- Generating optimized, minified production builds and previewing them locally to ensure stability before final deployment.
- Automating code quality checks and style formatting using ESLint and Prettier to maintain a clean and consistent codebase.
- Managing complex Rsbuild configurations, including path aliases, environment variables, and plugin integrations for Sass, Less, or React.
- Executing type-checking and debugging build-time errors to improve application reliability and developer productivity.
| name | rsbuild-dev |
|---|---|
| description | Run development tasks including build, dev server, linting, formatting, and Rsbuild configuration. Use when building the project, starting dev server, fixing lint errors, formatting code, or configuring Rsbuild. |
| allowed-tools | Bash, Read, Edit, Grep, Glob |
Rsbuild Development
Overview
This skill helps you work with Rsbuild development tasks including building, running dev server, linting, formatting, and configuration.
Key Files
Configuration
rsbuild.config.ts- Main Rsbuild configurationpackage.json- Scripts and dependenciestsconfig.json- TypeScript configuration.eslintrcoreslint.config.js- ESLint configuration.prettierrc- Prettier configurationtailwind.config.js- Tailwind CSS configuration
Available Scripts
Development Server
pnpm dev
- Starts dev server on port 3002
- Opens browser automatically
- Hot Module Replacement (HMR) enabled
- Watch mode for file changes
Build for Production
pnpm build
- Creates optimized production build
- Output in
dist/directory - Minified and bundled assets
- TypeScript compilation
Preview Production Build
pnpm preview
- Serves the production build locally
- Test production build before deployment
Linting
pnpm lint
- Runs ESLint on all source files
- Checks for code quality issues
- Reports errors and warnings
Code Formatting
pnpm format
- Formats code with Prettier
- Applies consistent code style
- Formats all files in project
Rsbuild Configuration
Current Setup
// rsbuild.config.ts
import { defineConfig, loadEnv } from '@rsbuild/core';
import { pluginReact } from '@rsbuild/plugin-react';
const { publicVars } = loadEnv();
export default defineConfig({
server: {
port: 3002
},
resolve: {
alias: {
'@': './src',
},
},
source: {
define: publicVars,
},
plugins: [
pluginReact(),
]
});
Key Features
- Port: 3002 (configurable)
- Path Alias:
@maps to./src - Environment Variables:
PUBLIC_*vars exposed to client - React Plugin: JSX/TSX support with optimizations
Common Tasks
Starting Development
Ensure dependencies are installed:
pnpm installStart dev server:
pnpm devApplication opens at
http://localhost:3002
Building for Production
Run build:
pnpm buildCheck output in
dist/directoryPreview build locally:
pnpm preview
Fixing Lint Errors
Run linter to see issues:
pnpm lintMany issues can be auto-fixed:
pnpm lint --fixReview and fix remaining issues manually
Formatting Code
Format all files:
pnpm formatCheck format without writing:
pnpm format --check
TypeScript Configuration
Key Settings
- Strict Mode: Enabled for type safety
- JSX: React JSX support
- Path Mapping:
@/*maps to./src/* - Target: Modern ES syntax
Type Checking
npx tsc --noEmit
- Checks types without emitting files
- Useful for CI/CD pipelines
ESLint Configuration
Enabled Rules
- React Hooks rules
- React Refresh rules
- TypeScript ESLint rules
- Custom project rules
Key Rules
- No unused variables
- Consistent code style
- React best practices
- TypeScript strict checks
Prettier Configuration
Prettier ensures consistent formatting:
- 2-space indentation
- Single quotes
- Semicolons
- Trailing commas
- Line width: 80 characters (configurable)
Environment Variables
Public Variables
All PUBLIC_* environment variables are exposed to client:
PUBLIC_REST_API_URL=http://localhost:4000/api
PUBLIC_GRAPHQL_API_URL=http://localhost:4000/graphql
PUBLIC_KEYCLOAK_URL=http://localhost:8080
PUBLIC_KEYCLOAK_REALM=your-realm
PUBLIC_KEYCLOAK_CLIENT_ID=your-client-id
Using in Code
const apiUrl = import.meta.env.PUBLIC_REST_API_URL;
Environment Files
.env- Default environment.env.local- Local overrides (gitignored).env.production- Production values
Adding Rsbuild Plugins
Available Official Plugins
@rsbuild/plugin-react- React support (already included)@rsbuild/plugin-sass- SASS/SCSS support@rsbuild/plugin-less- Less support@rsbuild/plugin-vue- Vue support@rsbuild/plugin-svgr- SVG as React components
Installing a Plugin
pnpm add -D @rsbuild/plugin-sass
Adding to Configuration
import { pluginSass } from '@rsbuild/plugin-sass';
export default defineConfig({
plugins: [
pluginReact(),
pluginSass(),
]
});
Configuring Build Options
Output Configuration
export default defineConfig({
output: {
distPath: {
root: 'dist',
js: 'js',
css: 'css',
},
assetPrefix: '/admin/',
},
});
Source Configuration
export default defineConfig({
source: {
entry: {
index: './src/index.tsx',
},
},
});
Performance Configuration
export default defineConfig({
performance: {
chunkSplit: {
strategy: 'split-by-experience',
},
},
});
Debugging Build Issues
Common Issues
Build Fails
- Check TypeScript errors:
npx tsc --noEmit - Review error messages carefully
- Verify all imports are correct
- Check for missing dependencies
- Check TypeScript errors:
Dev Server Won't Start
- Check if port 3002 is already in use
- Verify environment variables
- Check for syntax errors in config files
- Clear cache:
rm -rf node_modules/.cache
HMR Not Working
- Restart dev server
- Check browser console for errors
- Verify React Fast Refresh is enabled
- Check component exports are named
Import Errors
- Verify path aliases in
tsconfig.jsonandrsbuild.config.ts - Check file extensions (.ts, .tsx, .js, .jsx)
- Ensure files exist at expected paths
- Verify path aliases in
Performance Optimization
Code Splitting
Rsbuild automatically code-splits:
- Vendor bundles (node_modules)
- Async components (lazy imports)
- Dynamic imports
Tree Shaking
- Remove unused exports
- Use named imports
- Avoid side effects
Caching
- Long-term caching for assets
- Content-based hashing
- Incremental builds in dev
CI/CD Integration
Build Script
pnpm install
pnpm lint
pnpm build
Type Checking
npx tsc --noEmit
Testing
pnpm test # If tests are configured
Best Practices
- Always lint and format before committing
- Use path aliases (
@/) for cleaner imports - Test production builds locally before deploying
- Keep dependencies updated regularly
- Use environment variables for configuration
- Enable strict TypeScript for better type safety
- Monitor build size and optimize as needed
- Use code splitting for large applications
Quick Reference
| Task | Command |
|---|---|
| Start dev server | pnpm dev |
| Build production | pnpm build |
| Preview build | pnpm preview |
| Lint code | pnpm lint |
| Format code | pnpm format |
| Type check | npx tsc --noEmit |
| Install deps | pnpm install |
| Add dependency | pnpm add package-name |
| Add dev dependency | pnpm add -D package-name |
Example Workflow
When starting development:
- Pull latest code
- Install dependencies:
pnpm install - Start dev server:
pnpm dev - Make changes with HMR
- Lint code:
pnpm lint - Format code:
pnpm format - Type check:
npx tsc --noEmit - Build:
pnpm build - Test build:
pnpm preview - Commit changes