18 lines
689 B
JavaScript
18 lines
689 B
JavaScript
import { cp, mkdir, rm } from 'node:fs/promises';
|
|
import { fileURLToPath } from 'node:url';
|
|
import { basename } from 'node:path';
|
|
|
|
const root = new URL('../', import.meta.url);
|
|
const output = new URL('dist/', root);
|
|
const publicFiles = ['index.html', 'assets', 'favicon.ico', 'favicon.svg', 'sitemap.xml', 'robots.txt', 'site.webmanifest'];
|
|
|
|
await rm(output, { recursive: true, force: true });
|
|
await mkdir(output, { recursive: true });
|
|
for (const filename of publicFiles) {
|
|
await cp(new URL(filename, root), new URL(filename, output), {
|
|
recursive: true,
|
|
filter: (source) => !basename(source).startsWith('.'),
|
|
});
|
|
}
|
|
console.log(`Static site built at ${fileURLToPath(output)}`);
|