Agent skill
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.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/development/rsbuild-dev-doitsu2014-my-blogs-rsbuild
SKILL.md
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:
bashpnpm install -
Start dev server:
bashpnpm dev -
Application opens at
http://localhost:3002
Building for Production
-
Run build:
bashpnpm build -
Check output in
dist/directory -
Preview build locally:
bashpnpm preview
Fixing Lint Errors
-
Run linter to see issues:
bashpnpm lint -
Many issues can be auto-fixed:
bashpnpm lint --fix -
Review and fix remaining issues manually
Formatting Code
-
Format all files:
bashpnpm format -
Check format without writing:
bashpnpm 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
Didn't find tool you were looking for?