1
- import { defineConfig , mergeConfig } from 'vitest/config'
2
- import { externalizeDeps } from 'vite-plugin-externalize-deps'
3
- import tsconfigPaths from 'vite-tsconfig-paths'
4
- import dts from 'vite-plugin-dts'
5
- import packageJson from './package.json'
6
- import type { Options } from '@tanstack/config/vite'
7
-
8
- function ensureImportFileExtension ( {
9
- content,
10
- extension,
11
- } : {
12
- content : string
13
- extension : string
14
- } ) {
15
- // replace e.g. `import { foo } from './foo'` with `import { foo } from './foo.js'`
16
- content = content . replace (
17
- / ( i m | e x ) p o r t \s [ \w { } / * \s , ] + f r o m \s [ ' " ] (?: \. \. ? \/ ) + ?[ ^ . ' " ] + (? = [ ' " ] ; ? ) / gm,
18
- `$&.${ extension } ` ,
19
- )
1
+ import { defineConfig } from 'vitest/config'
20
2
21
- // replace e.g. `import('./foo')` with `import('./foo.js')`
22
- content = content . replace (
23
- / i m p o r t \( [ ' " ] (?: \. \. ? \/ ) + ?[ ^ . ' " ] + (? = [ ' " ] ; ? ) / gm,
24
- `$&.${ extension } ` ,
25
- )
26
- return content
27
- }
3
+ import packageJson from './package.json'
28
4
29
- const config = defineConfig ( {
5
+ export default defineConfig ( {
30
6
// fix from https://github.com/vitest-dev/vitest/issues/6992#issuecomment-2509408660
31
7
resolve : {
32
8
conditions : [ '@tanstack/custom-condition' ] ,
@@ -50,73 +26,3 @@ const config = defineConfig({
50
26
restoreMocks : true ,
51
27
} ,
52
28
} )
53
-
54
- // copy from @tanstack /config/vite with changes:
55
- // - dts outDir: dist/types
56
- // - build - lib - fileName: [name.mjs]
57
- // - rollup - output - preserveModulesRoot: src
58
- export const tanstackViteConfig = ( options : Options ) => {
59
- const outDir = options . outDir ?? 'dist'
60
- const cjs = options . cjs ?? true
61
-
62
- return defineConfig ( {
63
- plugins : [
64
- externalizeDeps ( { include : options . externalDeps ?? [ ] } ) ,
65
- tsconfigPaths ( {
66
- projects : options . tsconfigPath ? [ options . tsconfigPath ] : undefined ,
67
- } ) ,
68
- dts ( {
69
- outDir : `dist/types` ,
70
- entryRoot : options . srcDir ,
71
- include : options . srcDir ,
72
- exclude : options . exclude ,
73
- tsconfigPath : options . tsconfigPath ,
74
- compilerOptions : {
75
- module : 99 , // ESNext
76
- declarationMap : false ,
77
- } ,
78
- beforeWriteFile : ( filePath , content ) => {
79
- // content =
80
- // options.beforeWriteDeclarationFile?.(filePath, content) || content
81
- return {
82
- filePath,
83
- content : ensureImportFileExtension ( { content, extension : 'js' } ) ,
84
- }
85
- } ,
86
- afterDiagnostic : ( diagnostics ) => {
87
- if ( diagnostics . length > 0 ) {
88
- console . error ( 'Please fix the above type errors' )
89
- process . exit ( 1 )
90
- }
91
- } ,
92
- } ) ,
93
- ] ,
94
- build : {
95
- outDir,
96
- minify : false ,
97
- sourcemap : true ,
98
- lib : {
99
- entry : options . entry ,
100
- formats : cjs ? [ 'es' , 'cjs' ] : [ 'es' ] ,
101
- fileName : ( ) => '[name].mjs' ,
102
- } ,
103
- rollupOptions : {
104
- output : {
105
- preserveModules : true ,
106
- preserveModulesRoot : 'src' ,
107
- } ,
108
- } ,
109
- } ,
110
- } )
111
- }
112
-
113
- export default mergeConfig (
114
- config ,
115
- tanstackViteConfig ( {
116
- cjs : false ,
117
- entry : [ './src/index.ts' ] ,
118
- exclude : [ 'src/__tests__' ] ,
119
- srcDir : './src' ,
120
- tsconfigPath : 'tsconfig.prod.json' ,
121
- } ) ,
122
- )
0 commit comments