Skip to the content.

The template includes a comprehensive build system with multiple modes optimized for different workflows.

Build Modes

Development Build

Command: npm run dev

Fast builds for active development:

Use when: Making frequent changes and testing in Obsidian

Development Watch

Command: npm run dev:watch

Continuous development with automatic rebuilds:

Use when: Working on features that need frequent testing

⚠️ Note: This blocks the terminal. Use a separate terminal for other commands.

Production Build

Command: npm run build

Full production build with optimizations:

Use when:

CSS Build System

Modular Source Files

CSS is organized in modular source files in src/styles/:

src/styles/
├── base.css       # Base styles and Obsidian variables
├── modals.css     # Modal dialog styles
└── settings.css   # Settings tab styles

Compilation

Command: npm run build:css

Combines all CSS files into single styles.css:

Watch mode: npm run watch:css

Adding New CSS Files

  1. Create file in src/styles/
  2. Add to cssFiles array in build-css.mjs
  3. Run npm run build:css

Important: Never edit styles.css directly - edit source files in src/styles/

Release Build

Command: npm run release

Creates versioned release package:

Output:

release/
├── 0.1.0/
│   ├── manifest.json
│   ├── main.js
│   └── styles.css
└── plugin-name-0.1.0.zip

Build Configuration

esbuild.config.mjs

Main build configuration:

Key settings:

Development mode:

define: {
    'BUILD_ENV': '"development"'
}

Production mode:

define: {
    'BUILD_ENV': '"production"'
}
treeShaking: true
minify: true

tsconfig.json

TypeScript configuration:

Important settings:

Build Output

Development

Target: test-vault/.obsidian/plugins/obsidian-plugin-template/

Files copied:

Production

Target: test-vault/.obsidian/plugins/obsidian-plugin-template/

Same files, but:

Performance Characteristics

Build Times

Development: ~100-200ms

Production: ~1-2s

Bundle Sizes

Development:

Production:

Actual size depends on your plugin code

Troubleshooting

Build Fails

TypeScript errors:

npm run build  # See full type errors

esbuild errors:

CSS Not Updating

npm run build:css  # Manual rebuild

Watch mode not working:

Plugin Not Updating in Obsidian

  1. Check build completed successfully
  2. Reload Obsidian (Cmd/Ctrl + R)
  3. Check Developer Console for errors
  4. Verify files copied to test vault