Skip to content
Merged

m2d #1648

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions config/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export default {

注意:即使项目没有在 `package.json` 中开启 `"type": "module"`,Vite 也支持在配置文件中使用 ESM 语法。这种情况下,配置文件会在被加载前自动进行预处理。

你可以显式地通过 `--config` 命令行选项指定一个配置文件(相对于 `cwd` 路径进行解析)
你可以显式地通过 `--config` 命令行选项指定一个配置文件(相对于 `cwd` 路径进行解析)

```bash
vite --config my-config.js
Expand All @@ -27,7 +27,7 @@ vite --config my-config.js
::: tip 加载配置文件
默认情况下,Vite 使用 [Rolldown](https://rolldown.rs/) 将配置文件打包到临时文件中并加载它。这可能会在 monorepo 中导入 TypeScript 文件时引发问题。如果你遇到了这种方法问题,可以通过指定 `--configLoader runner` 以改用 [module runner](/guide/api-environment-runtimes.html#modulerunner),它不会创建临时配置并将动态转换任何文件。请注意,module runner 不支持配置文件中的 CJS,但外部 CJS 包应该可以正常工作。

另外,如果你正在使用支持TypeScript的环境(例如 `node --experimental-strip-types`),或者只编写纯 JavaScript 代码,你可以指定 `--configLoader native` 以使用环境的本机运行时加载配置文件。请注意,配置文件导入的模块的更新不会被检测到,因此不会自动重启 Vite 服务器。
另外,如果你正在使用支持 TypeScript 的环境(例如 `node --experimental-strip-types`),或者只编写纯 JavaScript 代码,你可以指定 `--configLoader native` 以使用环境的本机运行时加载配置文件。请注意,配置文件导入的模块的更新不会被检测到,因此不会自动重启 Vite 服务器。
:::

## 配置智能提示 {#config-intellisense}
Expand Down Expand Up @@ -63,7 +63,7 @@ export default {

## 条件配置 {#conditional-config}

如果配置文件需要基于(`serve` 或 `build`)命令或者不同的 [模式](/guide/env-and-mode#modes) 来决定选项,亦或者是一个 SSR 构建(`isSsrBuild`)、一个正在预览的构建产物(`isPreview`),则可以选择导出这样一个函数:
如果配置文件需要基于命令(`serve` 或 `build`)或者不同的 [模式](/guide/env-and-mode#modes) 来决定选项,亦或者是一个 SSR 构建(`isSsrBuild`)、一个正在预览的构建产物(`isPreview`),则可以选择导出这样一个函数:

```js twoslash
import { defineConfig } from 'vite'
Expand All @@ -82,7 +82,7 @@ export default defineConfig(({ command, mode, isSsrBuild, isPreview }) => {
})
```

需要注意的是,在 Vite 的 API 中,在开发环境下 `command` 的值为 `serve`(在 CLI 中, `vite dev` 和 `vite serve` 是 [`vite`](/guide/cli#vite) 的别名),而在生产环境下为 `build`([`vite build`](/guide/cli#vite-build))。
需要注意的是,在 Vite 的 API 中,在开发环境下 `command` 的值为 `serve`(在 CLI 中,`vite dev` 和 `vite serve` 是 [`vite`](/guide/cli#vite) 的别名),而在生产环境下为 `build`([`vite build`](/guide/cli#vite-build))。

`isSsrBuild` 和 `isPreview` 是额外的可选标志,用于区分 `build` 和 `serve` 命令的类型。一些加载 Vite 配置的工具可能不支持这些标志,而会传递 `undefined`。因此,建议使用 `true` 和 `false` 的显式比较。

Expand All @@ -105,7 +105,7 @@ export default defineConfig(async ({ command, mode }) => {

在评估配置文件本身时,可用的环境变量仅限于当前进程环境中已经存在的变量(`process.env`)。Vite 有意推迟加载任何 `.env*` 文件,直到用户配置解析完成之后,因为要加载的文件集合依赖于配置选项如 [`root`](/guide/#index-html-and-project-root) 和 [`envDir`](/config/shared-options.md#envdir),以及最终的 `mode`。

这意味着:在你的 `vite.config.*` 运行时,定义在 `.env`、`.env.local`、`.env.[mode]` 或 `.env.[mode].local` 中的变量不会自动注入到 `process.env` 中。它们会在稍后自动加载,并通过 `import.meta.env` 暴露给应用程序代码(使用默认的 `VITE_` 前缀过滤器),正如[环境变量和模式](/guide/env-and-mode.html)中所记录的那样。因此,如果你只需要将 `.env*` 文件中的值传递给应用程序,则无需在配置中调用任何内容。
这意味着:在你的 `vite.config.*` 运行时,定义在 `.env`、`.env.local`、`.env.[mode]` 或 `.env.[mode].local` 中的变量不会自动注入到 `process.env` 中。它们会在稍后自动加载,并通过 `import.meta.env` 暴露给应用程序代码(使用默认的 `VITE_` 前缀过滤器),正如 [环境变量和模式](/guide/env-and-mode.html) 中所记录的那样。因此,如果你只需要将 `.env*` 文件中的值传递给应用程序,则无需在配置中调用任何内容。

但是,如果 `.env*` 文件中的值必须影响配置本身(例如设置 `server.port`、条件性启用插件或计算 `define` 替换),你可以使用导出的 [`loadEnv`](/guide/api-javascript.html#loadenv) 辅助函数手动加载它们。

Expand Down
12 changes: 6 additions & 6 deletions config/shared-options.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
开发或生产环境服务的公共基础路径。合法的值包括以下几种:

- 绝对 URL 路径名,例如 `/foo/`
- 完整的 URL,例如 `https://bar.com/foo/ `(域名部分在开发环境中不会被使用,因此该值与 `/foo/` 相同)
- 完整的 URL,例如 `https://bar.com/foo/`(域名部分在开发环境中不会被使用,因此该值与 `/foo/` 相同)
- 空字符串或 `./`(用于嵌入形式的开发)

更多信息详见 [公共基础路径](/guide/build#public-base-path)。
Expand Down Expand Up @@ -170,7 +170,7 @@ resolve: {

在这里,`import` 和 `require` 被称为"条件"。条件可以嵌套,并且应该按照从最具体到最不具体的顺序指定。

`development|production` 是一个特殊值,根据 `process.env.NODE_ENV` 的值替换为 `production` 或 `development` 。如果 `process.env.NODE_ENV === 'production'`,则替换为 `production`,否则替换为 `development`。
`development|production` 是一个特殊值,根据 `process.env.NODE_ENV` 的值替换为 `production` 或 `development`。如果 `process.env.NODE_ENV === 'production'`,则替换为 `production`,否则替换为 `development`。

请注意,如果符合要求,`import`,`require`,`default` 条件始终会被应用。

Expand Down Expand Up @@ -270,9 +270,9 @@ resolve: {
指定传递给 CSS 预处理器的选项。文件扩展名用作选项的键。每个预处理器支持的选项可以在它们各自的文档中找到:

- `sass`/`scss`:
- 如果已安装,则使用 `sass-embedded`,否则使用 `sass`。为了获得最佳性能,建议安装 `sass-embedded` 包。
- 如果已安装,则使用 `sass-embedded`,否则使用 `sass`。为了获得最佳性能,建议安装 `sass-embedded` 包。
- [Options](https://sass-lang.com/documentation/js-api/interfaces/stringoptions/)
- `less`: [选项](https://lesscss.org/usage/#less-options).
- `less`: [选项](https://lesscss.org/usage/#less-options)
- `styl`/`stylus`: 仅支持 [`define`](https://stylus-lang.com/docs/js.html#define-name-node),可以作为对象传递。

**示例:**
Expand Down Expand Up @@ -418,7 +418,7 @@ export default defineConfig({
})
```

默认情况下,Oxc转换 会被应用在 `ts`、`jsx`、`tsx` 文件。你可以通过 `oxc.include` 和 `oxc.exclude` 对要处理的文件类型进行配置,这两个配置的值可以是一个正则表达式、一个 [picomatch](https://github.com/micromatch/picomatch#globbing-features) 模式,或是一个值为这两种类型的数组。
默认情况下,Oxc 转换会被应用在 `ts`、`jsx`、`tsx` 文件。你可以通过 `oxc.include` 和 `oxc.exclude` 对要处理的文件类型进行配置,这两个配置的值可以是一个正则表达式、一个 [picomatch](https://github.com/micromatch/picomatch#globbing-features) 模式,或是一个值为这两种类型的数组。

此外,你还可以通过 `oxc.jsxInject` 来自动为每一个被 Oxc 转换的文件注入 JSX helper。

Expand Down Expand Up @@ -524,7 +524,7 @@ export default defineConfig({
以 `envPrefix` 开头的环境变量会通过 `import.meta.env` 暴露在你的客户端源码中。

:::warning 安全注意事项
`envPrefix` 不应被设置为空字符串 `''`,这将暴露你所有的环境变量,导致敏感信息的意外泄漏。 检测到配置为 `''` 时 Vite 将会抛出错误.
`envPrefix` 不应被设置为空字符串 `''`,这将暴露你所有的环境变量,导致敏感信息的意外泄漏。检测到配置为 `''` 时 Vite 将会抛出错误

如果你想暴露一个不含前缀的变量,可以使用 [define](#define) 选项:

Expand Down