build.mjs
1 import fs from 'node:fs'; 2 import { replaceTscAliasPaths } from 'tsc-alias'; 3 import { resolve } from 'node:path'; 4 import esbuild from 'esbuild'; 5 6 /** 7 * @type { import('esbuild').BuildOptions } 8 */ 9 const buildOptions = { 10 entryPoints: ['./index.ts', './lib/**/*.ts', './lib/**/*.tsx'], 11 tsconfig: './tsconfig.json', 12 bundle: false, 13 target: 'es6', 14 outdir: './dist', 15 sourcemap: true, 16 }; 17 18 await esbuild.build(buildOptions); 19 20 /** 21 * Post build paths resolve since ESBuild only natively 22 * support paths resolution for bundling scenario 23 * @url https://github.com/evanw/esbuild/issues/394#issuecomment-1537247216 24 */ 25 await replaceTscAliasPaths({ 26 configFile: 'tsconfig.json', 27 watch: false, 28 outDir: 'dist', 29 declarationDir: 'dist', 30 }); 31 32 fs.copyFileSync(resolve('lib', 'global.css'), resolve('dist', 'global.css'));