diff --git a/config/index.md b/config/index.md index 80aff94b..c82d7a37 100644 --- a/config/index.md +++ b/config/index.md @@ -78,7 +78,7 @@ export default defineConfig(async ({ command, mode }) => { }) ``` -## 环境变量 {#environment-variables} +## 在配置中使用环境变量 {#using-environment-variables-in-config} 环境变量通常可以从 `process.env` 获得。 diff --git a/config/shared-options.md b/config/shared-options.md index b9d0484e..b04d2f45 100644 --- a/config/shared-options.md +++ b/config/shared-options.md @@ -37,7 +37,7 @@ 定义全局常量替换方式。其中每项在开发环境下会被定义在全局,而在构建时被静态替换。 -- 从 `2.0.0-beta.70` 开始,string 值会以原始表达式形式使用,所以如果定义了一个字符串常量,它需要被显式地打引号。(例如使用 `JSON.stringify`) +- String 值会以原始表达式形式使用,所以如果定义了一个字符串常量,**它需要被显式地打引号。**(例如使用 `JSON.stringify`) - 为了与 [esbuild 的行为](https://esbuild.github.io/api/#define)保持一致,表达式必须为一个 JSON 对象(null、boolean、number、string、数组或对象),亦或是一个单独的标识符。 diff --git a/config/worker-options.md b/config/worker-options.md index e130abfa..2d653f32 100644 --- a/config/worker-options.md +++ b/config/worker-options.md @@ -13,7 +13,7 @@ worker 打包时的输出类型。 - **类型:** [`(Plugin | Plugin[])[]`](./shared-options#plugins) -应用于 worker 打包的 Vite 插件。注意 [config.plugins](./shared-options#plugins) 不会应用于 worker,而是应该在这里配置所用到的插件。 +应用于 worker 打包的 Vite 插件。注意 [config.plugins](./shared-options#plugins) 仅会在开发(dev)阶段应用于 worker,若要配置在构建(build)阶段应用于 worker 的插件则应该在本选项这里配置。 ## worker.rollupOptions diff --git a/guide/api-hmr.md b/guide/api-hmr.md index 169893dd..c7aad702 100644 --- a/guide/api-hmr.md +++ b/guide/api-hmr.md @@ -70,9 +70,9 @@ if (import.meta.hot) { “接受” 热更新的模块被认为是 **HMR 边界**。 -请注意,Vite 的 HMR 实际上并不替换最初导入的模块:如果 HMR 边界模块从某个依赖重新导出其导入,则它应负责更新这些重新导出的模块(这些导出必须使用 `let`)。此外,从边界模块向上的导入者将不会收到更新。 +Vite 的 HMR 实际上并不替换最初导入的模块:如果 HMR 边界模块从某个依赖重新导出其导入,则它应负责更新这些重新导出的模块(这些导出必须使用 `let`)。此外,从边界模块向上的导入者将不会收到更新。这种简化的 HMR 实现对于大多数开发用例来说已经足够了,同时允许我们跳过生成代理模块的昂贵工作。 -这种简化的 HMR 实现对于大多数开发用例来说已经足够了,同时允许我们跳过生成代理模块的昂贵工作。 +Vite 要求这个函数的调用在源代码中显示为 `import.meta.hot.accept(`(对空格敏感),这样模块才能接受更新。这是 Vite 为使模块支持 HMR 而进行的静态分析的一个要求。 ## `hot.accept(deps, cb)` {#hot-accept-deps-cb} diff --git a/guide/cli.md b/guide/cli.md index 4ce4a8a2..128016c1 100644 --- a/guide/cli.md +++ b/guide/cli.md @@ -4,7 +4,7 @@ ### `vite` {#vite} -在当前目录下启动 Vite 开发服务器,将自动进入开发环境的观察模式和 CI 的运行模式。 +在当前目录下启动 Vite 开发服务器。 #### 使用 {#usage} diff --git a/guide/features.md b/guide/features.md index 7ed9cc9e..754c79a4 100644 --- a/guide/features.md +++ b/guide/features.md @@ -443,10 +443,8 @@ const modules = import.meta.glob('./dir/*.js', { ```ts // vite 生成的代码 const modules = { - './dir/foo.js': () => - import('./dir/foo.js?foo=bar&bar=true'), - './dir/bar.js': () => - import('./dir/bar.js?foo=bar&bar=true'), + './dir/foo.js': () => import('./dir/foo.js?foo=bar&bar=true'), + './dir/bar.js': () => import('./dir/bar.js?foo=bar&bar=true'), } ``` diff --git a/guide/troubleshooting.md b/guide/troubleshooting.md index f98e96d0..ead37afe 100644 --- a/guide/troubleshooting.md +++ b/guide/troubleshooting.md @@ -121,6 +121,16 @@ This can be caused by a circular dependency. To solve this, try breaking the loo ## 其他 {#others} +### Module externalized for browser compatibility {#module-externalized-for-browser-compatibility} + +当你在浏览器中使用一个 Node.js 模块时,Vite 会输出以下警告: + +> Module "fs" has been externalized for browser compatibility. Cannot access "fs.readFile" in client code. + +这是因为 Vite 不会自动 polyfill Node.js 的内建模块。 + +我们推荐你不要再浏览器中使用 Node.js 模块以减小包体积,尽管你可以为其手动添加 polyfill。如果该模块是被某个第三方库(这里意为某个在浏览器中使用的库)导入的,则建议向对应库提交一个 issue。 + ### Syntax Error / Type Error {#syntax-error-type-error-happens} Vite 无法处理、也不支持仅可在非严格模式(sloppy mode)下运行的代码。这是因为 Vite 使用了 ESM 并且始终在 ESM 中使用 [严格模式](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode)。