tsdown.config.ts 950 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. neverBundle: ['@vben/node-utils'],
  11. skipNodeModulesBundle: true,
  12. },
  13. dts: {
  14. resolver: 'tsc',
  15. },
  16. entry: ['src/index.ts'],
  17. format: ['esm'],
  18. hooks: {
  19. 'build:done': async (context) => {
  20. const outDir = context.options.outDir;
  21. if (!outDir) {
  22. return;
  23. }
  24. await mkdir(outDir, { recursive: true });
  25. for (const file of loadingAssets) {
  26. await cp(
  27. join(rootDir, 'src/plugins/inject-app-loading', file),
  28. join(outDir, file),
  29. );
  30. }
  31. },
  32. },
  33. outExtensions: () => ({
  34. dts: '.d.ts',
  35. }),
  36. });