-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathbuild.ts
More file actions
40 lines (32 loc) · 1.11 KB
/
build.ts
File metadata and controls
40 lines (32 loc) · 1.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import { rmSync } from 'node:fs';
import { run } from './util.ts';
const PROJECT = 'tsconfig.package.json';
async function buildLib(): Promise<void> {
rmSync('dist', { recursive: true, force: true });
buildTypes();
buildCjs();
buildEsm();
}
async function buildSite(): Promise<void> {
run('npx', ['vite', '--config', 'site/vite.config.js', 'build']);
}
async function buildImage(): Promise<void> {
run('docker', ['build', '.', '--tag', 'vexml:latest']);
}
function buildTypes(): void {
run('npx', ['tsc', '--project', PROJECT, '--outDir', 'dist/@types', '--emitDeclarationOnly']);
run('npx', ['tsc-alias', '-p', PROJECT, '--outDir', 'dist/@types']);
}
function buildCjs(): void {
run('npx', ['tsc', '--project', PROJECT, '--outDir', 'dist/cjs', '--module', 'commonjs']);
run('npx', ['tsc-alias', '-p', PROJECT, '--outDir', 'dist/cjs']);
}
function buildEsm(): void {
run('npx', ['tsc', '--project', PROJECT, '--outDir', 'dist/esm', '--module', 'esnext']);
run('npx', ['tsc-alias', '-p', PROJECT, '--outDir', 'dist/esm']);
}
export const build = {
lib: buildLib,
site: buildSite,
image: buildImage,
};