| 12345678910111213141516171819202122232425262728293031 |
- import { defineConfig } from 'tsdown'
- /**
- * Root-shape lib build plus a css stub: the shell's components import
- * .module.css/.css assets that tsc passes through untouched, so the JS under
- * lib/types references css files that do not exist there. The browser
- * consumer (apps/web) compiles src directly through vite where css is real;
- * this node lib build stubs every css import to an empty module — importing
- * the lib under plain node must not crash on an asset specifier.
- */
- export default defineConfig({
- entry: ['lib/types/index.js', 'lib/types/invariant.js'],
- outDir: 'lib',
- format: ['esm'],
- platform: 'neutral',
- target: 'es2024',
- fixedExtension: false,
- dts: false,
- clean: false,
- plugins: [{
- name: 'dsh-css-stub',
- resolveId(source: string) {
- if (!source.endsWith('.css')) return null
- return `\0dsh-css-stub:${source}.mjs`
- },
- load(id: string) {
- if (!id.startsWith('\0dsh-css-stub:')) return null
- return 'export default {};'
- },
- }],
- })
|