Skip to content

Commit 4cdcd7b

Browse files
authored
fix: resolve E2E test and link check Actions error (#1837)
1 parent 17803a8 commit 4cdcd7b

35 files changed

+284
-272
lines changed

cypress/e2e/check-server-side-rendering.cy.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ describe('server side rendered page', () => {
44
cy.get('head meta[name="description"]').should(
55
'have.attr',
66
'content',
7-
'Learn how to bundle a JavaScript application with webpack 5.'
7+
'学习如何使用 webpack5 打包 JavaScript 应用'
88
);
99
});
1010

1111
it('should find html tag with lang', () => {
1212
cy.visit('/');
13-
cy.get('html[lang="en"]');
13+
cy.get('html[lang="zh-cmn-Hans"]');
1414
});
1515

1616
it('should find meta charset', () => {
@@ -23,7 +23,7 @@ describe('server side rendered page', () => {
2323
cy.get('head meta[name="description"]').should(
2424
'have.attr',
2525
'content',
26-
'webpack is a module bundler. Its main purpose is to bundle JavaScript files for usage in a browser, yet it is also capable of transforming, bundling, or packaging just about any resource or asset.'
26+
'webpack 是一个模块打包器。它的主要目标是将 JavaScript 文件打包在一起,打包后的文件用于在浏览器中使用,但它也能够胜任转换、打包或包裹任何资源。'
2727
);
2828
});
2929

@@ -32,6 +32,6 @@ describe('server side rendered page', () => {
3232
cy.title().should('eq', 'webpack');
3333

3434
cy.visit('/guides/getting-started/');
35-
cy.title().should('eq', 'Getting Started | webpack');
35+
cy.title().should('eq', '起步 | webpack 中文文档');
3636
});
3737
});

src/components/Site/Site.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ function Site(props) {
168168

169169
const description =
170170
getPageDescription(Content, location.pathname) ||
171-
'webpack 是一个模块打包器。它的主要目标是将 JavaScript 文件打包在一起,打包后的文件用于在浏览器中使用,但它也能够胜任转换(transform)、打包(bundle)或包裹(package)任何资源(resource or asset)。';
171+
'webpack 是一个模块打包器。它的主要目标是将 JavaScript 文件打包在一起,打包后的文件用于在浏览器中使用,但它也能够胜任转换、打包或包裹任何资源。';
172172

173173
function isPrintPage(url) {
174174
return url.includes('/printable');

src/content/api/hot-module-replacement.mdx

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@ translators:
1919
- jacob-lcs
2020
---
2121

22-
如果已经通过 [`HotModuleReplacementPlugin`](/plugins/hot-module-replacement-plugin) 启用了 [Hot Module Replacement](/concepts/hot-module-replacement), 则它的接口将被暴露在 [`module.hot`](/api/module-variables/#modulehot-webpack-specific) 以及 [`import.meta.webpackHot`](/api/module-variables/#importmetawebpackhot) 属性下。请注意,只有 `import.meta.webpackHot` 可以在 [strict ESM](/guides/ecma-script-modules/#flagging-modules-as-esm) 中使用。
22+
如果已经通过 [`HotModuleReplacementPlugin`](/plugins/hot-module-replacement-plugin) 启用了 [Hot Module Replacement](/concepts/hot-module-replacement), 则它的接口将被暴露在 [`module.hot`](/api/module-variables/#modulehot-webpack-specific) 以及 [`import.meta.webpackHot`](/api/module-variables/#importmetawebpackHot) 属性下。请注意,只有 `import.meta.webpackHot` 可以在 [strict ESM](/guides/ecma-script-modules/#flagging-modules-as-esm) 中使用。
2323

2424
通常,用户先要检查这个接口是否可访问, 再使用它。你可以这样使用 `accept` 操作一个更新的模块:
2525

2626
```js
2727
if (module.hot) {
28-
module.hot.accept('./library.js', function() {
28+
module.hot.accept('./library.js', function () {
2929
// 对更新过的 library 模块做些事情...
3030
});
3131
}
@@ -71,7 +71,7 @@ import.meta.webpackHot.accept(
7171

7272
- `err`: 当使用 ESM 依赖项时,回调函数在第二个参数中或在依赖项执行期间抛出的错误。
7373
- `moduleId`: 当前模块 id。
74-
- `dependencyId`: (第一个)被更改依赖项的模块id
74+
- `dependencyId`: (第一个)被更改依赖项的模块 id
7575

7676
### accept (self) $#accept-self$
7777

@@ -99,7 +99,7 @@ import.meta.webpackHot.accept(
9999
- `err`: 计算新版本时的错误。
100100
- `moduleId`: 当前模块 id。
101101
- `module`: 当前模块实例。
102-
- `module.hot`: 允许访问出错模块实例的 HMR API。一个常见的场景是再次自我接收(accept)。添加一个dispose处理程序来传递数据也是有意义的。注意,错误的模块可能已经部分执行,所以请确保不要进入不一致的状态。你可以使用 `module.hot.data` 存储部分状态。
102+
- `module.hot`: 允许访问出错模块实例的 HMR API。一个常见的场景是再次自我接收(accept)。添加一个 dispose 处理程序来传递数据也是有意义的。注意,错误的模块可能已经部分执行,所以请确保不要进入不一致的状态。你可以使用 `module.hot.data` 存储部分状态。
103103
- `module.exports`: 可以被重载,但是要小心,因为属性名在生产模式下可能会被破坏。
104104

105105
### decline $#decline$
@@ -137,8 +137,8 @@ import.meta.webpackHot.decline();
137137

138138
添加一个处理函数,在当前模块代码被替换时执行。此函数应该用于移除你声明或创建的任何持久资源。如果要将状态传入到更新过的模块,请添加给定 `data` 参数。更新后,此对象在更新之后可通过 `module.hot.data` 调用。
139139

140-
``` js
141-
module.hot.dispose(data => {
140+
```js
141+
module.hot.dispose((data) => {
142142
// 清理并将 data 传递到更新后的模块...
143143
});
144144

@@ -242,24 +242,23 @@ import.meta.webpackHot.removeDisposeHandler(callback);
242242

243243
获取当前模块热替换进程的状态。
244244

245-
``` js
245+
```js
246246
module.hot.status(); // 返回以下字符串之一...
247247

248248
// 或者
249249
import.meta.webpackHot.status();
250250
```
251251

252-
| Status | Description |
253-
| ----------- | -------------------------------------------------------------------------------------- |
254-
| idle | 该进程正在等待调用 `check`(见下文) |
255-
| check | 该进程正在检查以更新 |
256-
| prepare     | 该进程正在准备更新(例如,下载已更新的模块) |
257-
| ready | 此更新已准备并可用 |
258-
| dispose | 该进程正在调用将被替换模块的 `dispose` 处理函数 |
252+
| Status | Description |
253+
| ----------- | ------------------------------------------------------------------------- |
254+
| idle | 该进程正在等待调用 `check`(见下文) |
255+
| check | 该进程正在检查以更新 |
256+
| prepare     | 该进程正在准备更新(例如,下载已更新的模块) |
257+
| ready | 此更新已准备并可用 |
258+
| dispose | 该进程正在调用将被替换模块的 `dispose` 处理函数 |
259259
| apply | 该进程正在调用 `accept` 处理函数,并重新执行自我接受(self-accepted)的模块 |
260-
| abort | 更新已中止,但系统仍处于之前的状态 |
261-
| fail | 更新已抛出异常,系统状态已被破坏 |
262-
260+
| abort | 更新已中止,但系统仍处于之前的状态 |
261+
| fail | 更新已抛出异常,系统状态已被破坏 |
263262

264263
### check $#check$
265264

@@ -350,7 +349,7 @@ import.meta.webpackHot
350349

351350
注册一个函数来监听 `status` 的变化。
352351

353-
``` js
352+
```js
354353
module.hot.addStatusHandler((status) => {
355354
// 响应当前状态...
356355
});

src/content/api/loaders.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -680,7 +680,7 @@ Error: This is a Fatal Error!
680680
681681
W> 从 webpack 4.12 开始,loader 路径将在报错信息中显示。
682682
683-
T> 所有的报错和警告信息将被记录到 `stats` 当中。详情请查看 [Stats Data](/api/stats/#errors-and-warnngs)。
683+
T> 所有的报错和警告信息将被记录到 `stats` 当中。详情请查看 [Stats Data](/api/stats/#errors-and-warnings)。
684684
685685
## Inline matchResource $#inline-matchresource$
686686

src/content/api/module-methods.mdx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ translators:
2929

3030
-`package.json` 中为 `.mjs``.js` 设置 `"type": "module"`
3131
- 不允许使用 CommonJS,例如,你不能使用 `require``module.exports``exports`
32-
- 当引入文件时,强制编写扩展名,例如,你应使用 `import './src/App.mjs'`,而非 `import './src/App'`(你可以通过设置 [`Rule.resolve.fullySpecified`](/configuration/module/#resolvefullyspecified) 来禁用此规则)
32+
- 当引入文件时,强制编写扩展名,例如,你应使用 `import './src/App.mjs'`,而非 `import './src/App'`(你可以通过设置 [`Rule.resolve.fullySpecified`](/configuration/module/#resolve-fully-specified) 来禁用此规则)
3333
-`package.json` 中为 `.cjs``.js` 设置 `"type": "commonjs"`
3434
- `import``export` 均不可用
3535
-`package.json` 中为 `.wasm` 设置 `"type": "module"`
@@ -64,7 +64,7 @@ import {
6464

6565
`默认`导出整个模块或具名导出模块。
6666

67-
``` javascript
67+
```javascript
6868
// 具名导出
6969
export var Count = 5;
7070
export function Multiply(a, b) {
@@ -99,7 +99,7 @@ W> import() 特性依赖于内置的 [`Promise`](https://developer.mozilla.org/e
9999

100100
不能使用完全动态的 import 语句,例如 `import(foo)`。是因为 `foo` 可能是系统或项目中任何文件的任何路径。
101101

102-
`import()` 必须至少包含一些关于模块的路径信息。打包可以限定于一个特定的目录或文件集,以便于在使用动态表达式时 - 包括可能在 `import()` 调用中请求的每个模块。例如, ``import(`./locale/${language}.json`)`` 会把 `.locale` 目录中的每个 `.json` 文件打包到新的 chunk 中。在运行时,计算完变量 `language` 后,就可以使用像 `english.json``german.json` 的任何文件。
102+
`import()` 必须至少包含一些关于模块的路径信息。打包可以限定于一个特定的目录或文件集,以便于在使用动态表达式时 - 包括可能在 `import()` 调用中请求的每个模块。例如, `` import(`./locale/${language}.json`) `` 会把 `.locale` 目录中的每个 `.json` 文件打包到新的 chunk 中。在运行时,计算完变量 `language` 后,就可以使用像 `english.json``german.json` 的任何文件。
103103

104104
```javascript
105105
// 想象我们有一个从 cookies 或其他存储中获取语言的方法
@@ -115,7 +115,7 @@ T> 使用 [`webpackInclude` and `webpackExclude`](/api/module-methods/#magic-com
115115

116116
内联注释使这一特性得以实现。通过在 import 中添加注释,我们可以进行诸如给 chunk 命名或选择不同模式的操作。
117117

118-
``` js
118+
```js
119119
// 单个目标
120120
import(
121121
/* webpackChunkName: "my-chunk-name" */
@@ -149,7 +149,7 @@ W> 注意:将 `webpackIgnore` 设置为 `true` 则不进行代码分离。
149149
`webpackMode`:从 webpack 2.6.0 开始,可以指定以不同的模式解析动态导入。支持以下选项:
150150

151151
- `'lazy'` (默认值):为每个 `import()` 导入的模块生成一个可延迟加载(lazy-loadable)的 chunk。
152-
- `'lazy-once'`:生成一个可以满足所有 `import()` 调用的单个可延迟加载(lazy-loadable)的 chunk。此 chunk 将在第一次 `import()` 时调用时获取,随后的 `import()` 则使用相同的网络响应。注意,这种模式仅在部分动态语句中有意义,例如 ``import(`./locales/${language}.json`)``,其中可能含有多个被请求的模块路径。
152+
- `'lazy-once'`:生成一个可以满足所有 `import()` 调用的单个可延迟加载(lazy-loadable)的 chunk。此 chunk 将在第一次 `import()` 时调用时获取,随后的 `import()` 则使用相同的网络响应。注意,这种模式仅在部分动态语句中有意义,例如 `` import(`./locales/${language}.json`) ``,其中可能含有多个被请求的模块路径。
153153
- `'eager'`:不会生成额外的 chunk。所有的模块都被当前的 chunk 引入,并且没有额外的网络请求。但是仍会返回一个 resolved 状态的 `Promise`。与静态导入相比,在调用 `import()` 完成之前,该模块不会被执行。
154154
- `'weak'`:尝试加载模块,如果该模块函数已经以其他方式加载,(即另一个 chunk 导入过此模块,或包含模块的脚本被加载)。仍会返回 `Promise`, 但是只有在客户端上已经有该 chunk 时才会成功解析。如果该模块不可用,则返回 rejected 状态的 `Promise`,且网络请求永远都不会执行。当需要的 chunks 始终在(嵌入在页面中的)初始请求中手动提供,而不是在应用程序导航在最初没有提供的模块导入的情况下触发,这对于通用渲染(SSR)是非常有用的。
155155

@@ -275,7 +275,7 @@ define([name: String], [dependencies: String[]], factoryMethod: function(...))
275275

276276
W> 注意:webpack 会忽略 `name` 参数。
277277

278-
``` javascript
278+
```javascript
279279
define(['jquery', 'my-module'], function ($, myModule) {
280280
// 使用 $ 和 myModule 做一些操作...
281281
@@ -389,7 +389,7 @@ context('localeA').then((locale) => {
389389
});
390390
```
391391

392-
`mode` 的可用模式及说明的完整列表在 [`import()`](#import-1) 文档中进行了描述。
392+
`mode` 的可用模式及说明的完整列表在 [`import()`](#import) 文档中进行了描述。
393393

394394
### require.include $#requireinclude$
395395

@@ -421,7 +421,7 @@ require.ensure(['a', 'c'], function (require) {
421421

422422
`require.resolve` 类似,但是不会把 `module` 引入到 bundle 中。这就是所谓的“弱(weak)”依赖。
423423

424-
``` javascript
424+
```javascript
425425
if (__webpack_modules__[require.resolveWeak('module')]) {
426426
// 当模块可用时,执行一些操作……
427427
}
@@ -435,7 +435,7 @@ const page = 'Foo';
435435
__webpack_modules__[require.resolveWeak(`./page/${page}`)];
436436
```
437437

438-
T> `require.resolveWeak` _通用渲染_(服务器端渲染 SSR + 代码分离 Code Splitting)的基础。例如在 [react-universal-component](https://github.com/faceyspacey/react-universal-component) 等包中的用法。它允许代码在服务器端和客户端初始页面的加载上同步渲染。它要求手动或以某种方式提供 chunk。它可以在不需要指示应该被打包的情况下引入模块。它与 `import()` 一起使用,当用户导航触发额外的导入时,它会被接管。
438+
T> `require.resolveWeak` 是*通用渲染*(服务器端渲染 SSR + 代码分离 Code Splitting)的基础。例如在 [react-universal-component](https://github.com/faceyspacey/react-universal-component) 等包中的用法。它允许代码在服务器端和客户端初始页面的加载上同步渲染。它要求手动或以某种方式提供 chunk。它可以在不需要指示应该被打包的情况下引入模块。它与 `import()` 一起使用,当用户导航触发额外的导入时,它会被接管。
439439

440440
### warning
441441

src/content/concepts/module-resolution.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ import 'module/lib/file';
6666

6767
如果路径指向一个文件夹,则进行如下步骤寻找具有正确扩展名的文件:
6868

69-
- 如果文件夹中包含 `package.json` 文件,则会根据 [`resolve.mainFields`](/configuration/resolve/#resolve-mainfields) 配置中的字段顺序查找,并根据 `package.json` 中的符合配置要求的第一个字段来确定文件路径。
69+
- 如果文件夹中包含 `package.json` 文件,则会根据 [`resolve.mainFields`](/configuration/resolve/#resolvemainfields) 配置中的字段顺序查找,并根据 `package.json` 中的符合配置要求的第一个字段来确定文件路径。
7070
- 如果不存在 `package.json` 文件或 [`resolve.mainFields`](/configuration/resolve/#resolvemainfields) 没有返回有效路径,则会根据 [`resolve.mainFiles`](/configuration/resolve/#resolvemainfiles) 配置选项中指定的文件名顺序查找,看是否能在 import/require 的目录下匹配到一个存在的文件名。
7171
- 然后使用 [`resolve.extensions`](/configuration/resolve/#resolveextensions) 选项,以类似的方式解析文件扩展名。
7272

src/content/concepts/output.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ module.exports = {
3232

3333
## 多个入口起点 $#multiple-entry-points$
3434

35-
如果配置中创建出多于一个 "chunk"(例如,使用多个入口起点或使用像 CommonsChunkPlugin 这样的插件),则应该使用 [占位符(substitutions)](/configuration/output#output-filename) 来确保每个文件具有唯一的名称。
35+
如果配置中创建出多于一个 "chunk"(例如,使用多个入口起点或使用像 CommonsChunkPlugin 这样的插件),则应该使用 [占位符(substitutions)](/configuration/output/#outputfilename) 来确保每个文件具有唯一的名称。
3636

3737
```javascript
3838
module.exports = {

src/content/configuration/cache.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ module.exports = {
241241

242242
`[string] = ['./node_modules']`
243243

244-
W> 已迁移到 [snapshot.managedPaths](#managedpaths)
244+
W> 已迁移到 [snapshot.managedPaths](/configuration/other-options/#managedpaths)
245245

246246
`cache.managedPaths` 是仅托管路径的包管理器数组。webpack 将避免将他们进行哈希和时间戳处理,假设版本是唯一的,并将其用作快照(用于内存和文件系统缓存)。
247247

src/content/configuration/devtool.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ T> 验证 devtool 名称时, 我们期望使用某种模式, 注意不要混
8383

8484
其中一些值适用于开发环境,一些适用于生产环境。对于开发环境,通常希望更快速的 source map,需要添加到 bundle 中以增加体积为代价,但是对于生产环境,则希望更精准的 source map,需要从 bundle 中分离并独立存在。
8585

86-
T> 查看 [`output.sourceMapFilename`](/configuration/output#output-sourcemapfilename) 自定义生成的 source map 的文件名。
86+
T> 查看 [`output.sourceMapFilename`](/configuration/output/#outputsourcemapfilename) 自定义生成的 source map 的文件名。
8787

8888
### 品质说明(quality) $#qualities$
8989

@@ -143,4 +143,4 @@ W> 你不应将 source map 文件部署到 web 服务器。而是只将其用于
143143

144144
W> 这仍然会暴露反编译后的文件名和结构,但它不会暴露原始代码。
145145

146-
T> 如果默认的 webpack `minimizer` 被覆盖 (例如自定义 `terser-webpack-plugin` 选项), 请确保将其替换配置为 `sourceMap: true` 以启用 SourceMap 支持。
146+
T> 如果默认的 webpack `minimizer` 被覆盖 (例如自定义 `terser-webpack-plugin` 选项), 请确保将其替换配置为 `sourceMap: true` 以启用 SourceMap 支持。

src/content/configuration/experiments.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Available options:
3030
- [`futureDefaults`](#experimentsfuturedefaults)
3131
- `layers`: Enable module and chunk layers.
3232
- [`lazyCompilation`](#experimentslazycompilation)
33-
- [`outputModule`](#experimentsoutputmodule)
33+
- [`outputModule`](#experimentsoutputModule)
3434
- `syncWebAssembly`: Support the old WebAssembly like in webpack 4.
3535
- `topLevelAwait`: Support the [Top Level Await Stage 3 proposal](https://github.com/tc39/proposal-top-level-await), it makes the module an async module when `await` is used on the top-level. And it is enabled by default when [`experiments.futureDefaults`](#experimentsfuturedefaults) is set to `true`.
3636

0 commit comments

Comments
 (0)