skier. v1.0.0

copyStaticTask

Copy static assets to the output directory without processing.


When to Use

✅ Use copyStaticTask for:

  • Images, fonts, videos
  • favicon.ico, robots.txt
  • Pre-built JavaScript libraries
  • Any file that doesn't need templating

❌ Use bundleCssTask instead for:

  • CSS files you want concatenated/minified

Quick Start

copyStaticTask({
  from: 'src/static',
  to: 'public',
})

Input: All files in src/static/ Output: Same files copied to public/


Configuration

Option Type Required Description
from string ✅ Source directory
to string ✅ Destination directory

Type signature

The exact CopyStaticConfig interface, transcluded from source so it stays in step with the shipping code:

export interface CopyStaticConfig {
  from: string;
  to: string;
}

Every task's config type together: API Reference → Config Interfaces.


Directory Preservation

The entire directory structure is preserved:

src/static/          →    public/
├── favicon.ico      →    ├── favicon.ico
├── robots.txt       →    ├── robots.txt
├── fonts/           →    ├── fonts/
│   └── Inter.woff2  →    │   └── Inter.woff2
└── images/          →    └── images/
    ├── logo.png     →        ├── logo.png
    └── hero.jpg     →        └── hero.jpg

Multiple Static Directories

Call the task multiple times for different sources:

export default [
  // Copy general assets
  copyStaticTask({
    from: 'src/static',
    to: 'public',
  }),

  // Copy root files (favicon, etc.)
  copyStaticTask({
    from: 'src/root',
    to: 'public',
  }),
];

Avoid Conflicts

If files exist in multiple source directories with the same name, the last task wins:

// ⚠️ If both have logo.png, final one wins
copyStaticTask({ from: 'src/shared', to: 'public' }),
copyStaticTask({ from: 'src/images', to: 'public' }), // This logo.png kept