tsdown.config.ts 911 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { cp, mkdir } from 'node:fs/promises';
  2. import { dirname, join } from 'node:path';
  3. import { fileURLToPath } from 'node:url';
  4. import { defineConfig } from 'tsdown';
  5. const rootDir = dirname(fileURLToPath(import.meta.url));
  6. const loadingAssets = ['default-loading-antd.html', 'default-loading.html'];
  7. export default defineConfig({
  8. clean: true,
  9. deps: {
  10. skipNodeModulesBundle: true,
  11. },
  12. dts: {
  13. resolver: 'tsc',
  14. },
  15. entry: ['src/index.ts'],
  16. format: ['esm'],
  17. hooks: {
  18. 'build:done': async (context) => {
  19. const outDir = context.options.outDir;
  20. if (!outDir) {
  21. return;
  22. }
  23. await mkdir(outDir, { recursive: true });
  24. for (const file of loadingAssets) {
  25. await cp(
  26. join(rootDir, 'src/plugins/inject-app-loading', file),
  27. join(outDir, file),
  28. );
  29. }
  30. },
  31. },
  32. outExtensions: () => ({
  33. dts: '.d.ts',
  34. }),
  35. });