Skip to content

Commit 2ec45b4

Browse files
committed
!docs: recovery /guide/projects
1 parent 723b7d9 commit 2ec45b4

1 file changed

Lines changed: 2 additions & 49 deletions

File tree

guide/projects.md

Lines changed: 2 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ export default defineConfig({
3030
})
3131
```
3232

33-
项目配置可以是内联配置、文件或指向项目的 glob 模式。例如,如果你有一个名为 `packages` 的文件夹包含多个项目,可以在根 Vitest 配置中定义一个数组
33+
项目配置可以是内联配置、文件或指向项目的 glob 模式。例如,如果你有一个名为 `packages` 的文件夹包含多个项目,可以在 Vitest 配置文件中定义一个数组
3434

3535
```ts [vitest.config.ts]
3636
import { defineConfig } from 'vitest/config'
@@ -42,54 +42,7 @@ export default defineConfig({
4242
})
4343
```
4444

45-
Vitest 会将 `packages` 中的每个文件夹视为独立项目,即使其中没有配置文件。如果 glob 模式匹配到文件,它将验证文件名是否以 `vitest.config`/`vite.config` 开头,或匹配 `(vite|vitest).*.config.*` 模式,以确保它是 Vitest 配置文件。例如,以下配置文件是有效的:
46-
47-
- `vitest.config.ts`
48-
- `vite.config.js`
49-
- `vitest.unit.config.ts`
50-
- `vite.e2e.config.js`
51-
- `vitest.config.unit.js`
52-
- `vite.config.e2e.js`
53-
54-
要排除文件夹和文件,你可以使用否定模式:
55-
56-
```ts [vitest.config.ts]
57-
import { defineConfig } from 'vitest/config'
58-
59-
export default defineConfig({
60-
test: {
61-
// 包含 "packages" 所有子文件夹,并排除 "excluded" 文件夹
62-
projects: [
63-
'packages/*',
64-
'!packages/excluded'
65-
],
66-
},
67-
})
68-
```
69-
70-
如果你有一个嵌套结构,其中某些文件夹需要成为项目,但其他文件夹有自己的子文件夹,你必须使用括号来避免匹配父文件夹:
71-
72-
```ts [vitest.config.ts]
73-
import { defineConfig } from 'vitest/config'
74-
75-
// 举例来说,像下面这样创建项目:
76-
// packages/a
77-
// packages/b
78-
// packages/business/c
79-
// packages/business/d
80-
// 注意:"packages/business" 并不是一个项目
81-
82-
export default defineConfig({
83-
test: {
84-
projects: [
85-
// 匹配 "packages" 目录下除 "business" 所有子文件夹
86-
'packages/!(business)',
87-
// 匹配 "packages/business" 下所有子文件夹
88-
'packages/business/*',
89-
],
90-
},
91-
})
92-
```
45+
Vitest 会将 `packages` 中的每个文件夹视为独立项目,即使其中没有配置文件。如果该 glob 模式匹配到 _任意文件_,它将被视为 Vitest 配置,即使文件名中没有包含 `vitest` 或文件扩展名不常见。
9346

9447
::: warning
9548
Vitest 不会将根目录的 `vitest.config` 文件视为项目,除非在配置中显式指定。因此,根配置只会影响全局选项,如 `reporters``coverage`。但 Vitest 总会执行根配置文件中指定的某些插件钩子,如 `apply``config``configResolved``configureServer`。Vitest 也会使用相同的插件执行全局设置和自定义覆盖提供者。

0 commit comments

Comments
 (0)