@rsdoctor/docs 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/en/_meta.json +17 -0
- package/docs/en/blog/_meta.json +12 -0
- package/docs/en/blog/release/_meta.json +1 -0
- package/docs/en/blog/release/release-note-1.mdx +129 -0
- package/docs/en/blog/topic/_meta.json +1 -0
- package/docs/en/blog/topic/duplicate-pkg-problem.mdx +141 -0
- package/docs/en/blog/topic/loader-optimization.mdx +80 -0
- package/docs/en/config/_meta.json +7 -0
- package/docs/en/config/options/_meta.json +1 -0
- package/docs/en/config/options/options.mdx +135 -0
- package/docs/en/config/options/term.mdx +10 -0
- package/docs/en/guide/_meta.json +17 -0
- package/docs/en/guide/more/_meta.json +1 -0
- package/docs/en/guide/more/faq.mdx +104 -0
- package/docs/en/guide/more/rules.mdx +5 -0
- package/docs/en/guide/start/_meta.json +1 -0
- package/docs/en/guide/start/cli.mdx +94 -0
- package/docs/en/guide/start/features.mdx +36 -0
- package/docs/en/guide/start/intro.mdx +115 -0
- package/docs/en/guide/start/quick-start.mdx +210 -0
- package/docs/en/guide/usage/_meta.json +13 -0
- package/docs/en/guide/usage/bundle-alerts.mdx +47 -0
- package/docs/en/guide/usage/bundle-overall.mdx +55 -0
- package/docs/en/guide/usage/bundle-size.mdx +122 -0
- package/docs/en/guide/usage/compile-alerts.mdx +18 -0
- package/docs/en/guide/usage/compile-overall.mdx +115 -0
- package/docs/en/guide/usage/loaders-analysis.mdx +72 -0
- package/docs/en/guide/usage/loaders-timeline.mdx +68 -0
- package/docs/en/guide/usage/module-analysis.mdx +58 -0
- package/docs/en/guide/usage/plugins-analysis.mdx +43 -0
- package/docs/en/guide/usage/project-overall.mdx +51 -0
- package/docs/en/guide/usage/resolver.mdx +29 -0
- package/docs/en/index.md +38 -0
- package/docs/zh/_meta.json +17 -0
- package/docs/zh/blog/_meta.json +12 -0
- package/docs/zh/blog/release/_meta.json +1 -0
- package/docs/zh/blog/release/release-note-1.mdx +128 -0
- package/docs/zh/blog/topic/_meta.json +1 -0
- package/docs/zh/blog/topic/duplicate-pkg-problem.mdx +138 -0
- package/docs/zh/blog/topic/loader-optimization.mdx +80 -0
- package/docs/zh/config/_meta.json +7 -0
- package/docs/zh/config/options/_meta.json +1 -0
- package/docs/zh/config/options/options.mdx +138 -0
- package/docs/zh/config/options/term.mdx +10 -0
- package/docs/zh/guide/_meta.json +17 -0
- package/docs/zh/guide/more/_meta.json +1 -0
- package/docs/zh/guide/more/faq.mdx +102 -0
- package/docs/zh/guide/more/rules.mdx +5 -0
- package/docs/zh/guide/start/_meta.json +1 -0
- package/docs/zh/guide/start/cli.mdx +94 -0
- package/docs/zh/guide/start/features.mdx +36 -0
- package/docs/zh/guide/start/intro.mdx +116 -0
- package/docs/zh/guide/start/quick-start.mdx +209 -0
- package/docs/zh/guide/usage/_meta.json +13 -0
- package/docs/zh/guide/usage/bundle-alerts.mdx +49 -0
- package/docs/zh/guide/usage/bundle-overall.mdx +57 -0
- package/docs/zh/guide/usage/bundle-size.mdx +122 -0
- package/docs/zh/guide/usage/compile-alerts.mdx +18 -0
- package/docs/zh/guide/usage/compile-overall.mdx +115 -0
- package/docs/zh/guide/usage/loaders-analysis.mdx +73 -0
- package/docs/zh/guide/usage/loaders-timeline.mdx +68 -0
- package/docs/zh/guide/usage/module-analysis.mdx +59 -0
- package/docs/zh/guide/usage/plugins-analysis.mdx +43 -0
- package/docs/zh/guide/usage/project-overall.mdx +51 -0
- package/docs/zh/guide/usage/resolver.mdx +29 -0
- package/docs/zh/index.md +38 -0
- package/docs/zh/shared/features-rspack.md +24 -0
- package/docs/zh/shared/features.md +29 -0
- package/package.json +44 -0
- package/src/components/NextSteps.module.scss +6 -0
- package/src/components/NextSteps.tsx +7 -0
- package/src/components/Overview.module.scss +61 -0
- package/src/components/Overview.tsx +40 -0
- package/src/components/RuleIndex.module.scss +57 -0
- package/src/components/RuleIndex.tsx +75 -0
- package/src/components/Step.module.scss +32 -0
- package/src/components/Step.tsx +13 -0
- package/src/global.d.ts +4 -0
- package/src/utils.ts +9 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Bundle Overall
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
On the homepage of **Rsdoctor**, we can see a card called `Bundle Overall`, which provides information about the **build artifacts** of the current project. The content is shown in the following image:
|
|
6
|
+
|
|
7
|
+
<img
|
|
8
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/overall/bundle-overall-1.jpg"
|
|
9
|
+
width="400px"
|
|
10
|
+
height="500px"
|
|
11
|
+
style={{ margin: 'auto' }}
|
|
12
|
+
/>
|
|
13
|
+
|
|
14
|
+
## Glossary
|
|
15
|
+
|
|
16
|
+
| Term | Description |
|
|
17
|
+
| -------------------------------- | -------------------------------------------------------------------------------------------- |
|
|
18
|
+
| <b><i>total files</i></b> | Represents the total number of files in the artifacts |
|
|
19
|
+
| <b><i>total size</i></b> | Represents the total size of all files in the artifacts |
|
|
20
|
+
| <b><i>js files</i></b> | Represents the number of `.js` files in the artifacts |
|
|
21
|
+
| <b><i>css files</i></b> | Represents the number of `.css` files in the artifacts |
|
|
22
|
+
| <b><i>image files</i></b> | Represents the number of `.png`/`.jpg`/`.svg`/`.webp`/`.jpeg`/`.gif`/`.bmp` files |
|
|
23
|
+
| <b><i>font files</i></b> | Represents the number of `.ttf`/`.fnt`/`.fon`/`.otf`/`.woff`/`.woff2` files in the artifacts |
|
|
24
|
+
| <b><i>media files</i></b> | Represents the number of `.mp3`/`.mp4`/`.avi`/`.wav`/`.flv`/`.mov`/`.mpg`/`.mpeg` files |
|
|
25
|
+
| <b><i>html files</i></b> | Represents the number of `.html` files in the artifacts |
|
|
26
|
+
| <b><i>modules</i></b> | Represents the total number of modules in the artifacts |
|
|
27
|
+
| <b><i>duplicate packages</i></b> | Represents the total number of duplicate packages in the artifacts |
|
|
28
|
+
|
|
29
|
+
## Usage Instructions
|
|
30
|
+
|
|
31
|
+
### View Bundle Artifacts
|
|
32
|
+
|
|
33
|
+
- The **"TOTAL Size"** data on the card represents the total size of the project. Clicking on this number will navigate to the [Bundle Size](./bundle-size.mdx)
|
|
34
|
+
|
|
35
|
+
- The card also displays the number and total size of different file types. Clicking on the corresponding blue icon will display the list of files, as shown in the following image:
|
|
36
|
+
- **Initial:** Refers to the Chunk being the main chunk of the entry.
|
|
37
|
+
|
|
38
|
+
<img
|
|
39
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/overall/bundle-overall-files.png"
|
|
40
|
+
width="400px"
|
|
41
|
+
height="600px"
|
|
42
|
+
style={{ margin: 'auto' }}
|
|
43
|
+
/>
|
|
44
|
+
|
|
45
|
+
### [Duplicate Packages](../../blog/topic/duplicate-pkg-problem.mdx)
|
|
46
|
+
|
|
47
|
+
If the `Duplicate Packages` number on the card is greater than 0, you can **click to view the details of the duplicate packages**. The content is shown in the following image:
|
|
48
|
+
|
|
49
|
+
<img
|
|
50
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/overall/bundle-overall-dup-pkg.jpg"
|
|
51
|
+
width="600px"
|
|
52
|
+
style={{ margin: 'auto' }}
|
|
53
|
+
/>
|
|
54
|
+
|
|
55
|
+
Here, you can see the list of all duplicate packages detected by Rsdoctor in the current build artifacts.
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Bundle Analysis
|
|
2
|
+
|
|
3
|
+
## Introduction
|
|
4
|
+
|
|
5
|
+
**Rsdoctor** provides the `Bundle Size` module, which is mainly used to analyze the information of the build artifacts of **Webpack** or **Rspack**, including the **size of resources**, **duplicate packages**, and **module reference relationships**:
|
|
6
|
+
|
|
7
|
+
- **Bundle Overview**: Displays the total number and size of artifacts, as well as the number and size of each file type. It also shows the duplicate packages and their reference chains.
|
|
8
|
+
- **Bundle Analysis Module**: Analyzes the size and code information of the build artifacts' resources (**Assets**) and the included **Modules**. In this module, you can view the **actual code size of modules after packaging** in the Assets, as well as the original code or **packaged code segments** and **module reference relationships**.
|
|
9
|
+
|
|
10
|
+
<img
|
|
11
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/bundle/bundle-size-overall.png"
|
|
12
|
+
width={'700px'}
|
|
13
|
+
style={{ margin: 'auto' }}
|
|
14
|
+
/>
|
|
15
|
+
|
|
16
|
+
Click on the **"Bundle Size"** option in the navigation bar to view the Bundle analysis report. Please note that to display this page, you need to enable the build artifact analysis capability [features](/config/options/options).
|
|
17
|
+
|
|
18
|
+
### Glossary
|
|
19
|
+
|
|
20
|
+
- **`Assets`**: Resources refer to images, fonts, media, and other file types. They are the files that ultimately exist in the output folder. Each Chunk has corresponding [Assets resources](https://webpack.js.org/concepts/under-the-hood/#chunks).
|
|
21
|
+
- **`Module`**: One or more Modules combine to form a Chunk. For more information about Module types, please refer to [Rspack Modules](https://www.rspack.dev/api/modules.html) and [Webpack Modules](https://webpack.js.org/concepts/modules/#what-is-a-webpack-module).
|
|
22
|
+
- **`Bundle Size`**: The final packaged size of the resource artifact, which is the final size after being processed by the builder.
|
|
23
|
+
- **`Module Bundled Source & Size`**: **Module Parsed Source** refers to the final code fragment of the **Module** in the packaged artifact, and **Module Parsed Size** refers to the size of the final code fragment of the **Module** in the packaged artifact.
|
|
24
|
+
- **`Package Count`**: The number of third-party packages.
|
|
25
|
+
- **`Initial Chunk`**: The **initial** chunk is the main chunk of the entry point. This chunk contains all the modules specified by the entry point and their dependencies, unlike the **chunks** for "on-demand loading".
|
|
26
|
+
- For more information about Initial Chunk, please refer to [Initial Chunk Introduction](https://webpack.js.org/concepts/under-the-hood/#chunks).
|
|
27
|
+
- **`Duplicate Packages`**: Duplicate third-party packages bundled into the project. Excludes third-party packages that are not bundled into the artifact. Please refer to [Duplicate Packages](/guide/usage/bundle-alerts).
|
|
28
|
+
- **`Concatenated Module`**: A concatenated module is a technique that combines multiple modules into one closure during packaging. In the past, Webpack would package each module into a separate closure, and this encapsulation function would cause slower execution of JavaScript in the browser. Optimization can be achieved by enabling the [`optimization.concatenateModules`](https://webpack.js.org/plugins/module-concatenation-plugin/#root) parameter.
|
|
29
|
+
|
|
30
|
+
## Bundle Overview
|
|
31
|
+
|
|
32
|
+
### Bundle Information Card
|
|
33
|
+
|
|
34
|
+
The bundle overview displays information about the number and size of files, such as `Total Files`. Clicking on the card chart expands the resource details, as shown in the following image:
|
|
35
|
+
|
|
36
|
+
<img
|
|
37
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/bundle/bundle-size-overall-1.png"
|
|
38
|
+
width={'700px'}
|
|
39
|
+
style={{ margin: 'auto' }}
|
|
40
|
+
/>
|
|
41
|
+
|
|
42
|
+
- Clicking on the details icon displays the corresponding resource tree on the right, indicating the resource sizes:
|
|
43
|
+
|
|
44
|
+
<img
|
|
45
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/bundle/bundle-size-tree.png"
|
|
46
|
+
width={'300px'}
|
|
47
|
+
height={'400px'}
|
|
48
|
+
style={{ margin: 'auto' }}
|
|
49
|
+
/>
|
|
50
|
+
|
|
51
|
+
- Clicking on the tabs allows you to switch between different resource information views, such as **[Total JS | Initial JS]**. The card also displays the percentage, size, and number of resources. Similarly, clicking on the icon in the lower right corner expands the resource list.
|
|
52
|
+
|
|
53
|
+
### Duplicate Packages
|
|
54
|
+
|
|
55
|
+
The **Duplicate Packages** card displays the number of duplicate third-party packages in the project. Clicking on the image allows you to view the specific details of the duplicate packages. Please note that these are duplicate packages that have been bundled.
|
|
56
|
+
|
|
57
|
+
For more information, please refer to [Duplicate Packages](/guide/usage/bundle-alerts).
|
|
58
|
+
|
|
59
|
+
## Bundle Analysis
|
|
60
|
+
|
|
61
|
+
::: tip
|
|
62
|
+
If your project is based on Rspack and the version is lower than 0.5.1, you cannot view code information.
|
|
63
|
+
:::
|
|
64
|
+
|
|
65
|
+
### Resource and Module Relationship Display
|
|
66
|
+
|
|
67
|
+
The **Bundle Analysis** module is used to analyze the size and code information of the build artifacts' resources (**Assets**) and the included **Modules**. The example image is shown below:
|
|
68
|
+
|
|
69
|
+
- On the left side is the list of **Assets** resources, sorted in descending order by resource size. You can click the **"expand all"** button to expand all nodes.
|
|
70
|
+
- On the right side is the list of **Modules** corresponding to the **Assets**, also sorted in descending order by module size after packaging.
|
|
71
|
+
|
|
72
|
+
<img src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/bundle/bundle-size-analysis-tree.png" />
|
|
73
|
+
|
|
74
|
+
### Search and Filter Box
|
|
75
|
+
|
|
76
|
+
The top toolbar from left to right includes: the search tool for **Assets**, the filter tool for **Assets** size, and the filter tool for **Module** size.
|
|
77
|
+
|
|
78
|
+
- **Search Entry Input Box**: Enter the keyword of an **Entry** in the input box to search for the corresponding **Entry** and display only the related **Assets**.
|
|
79
|
+
- **Search Assets Input Box**: Enter the keyword of an **Assets** in the input box to search for the corresponding **Assets**.
|
|
80
|
+
- **Assets Size Filter Tool**: Enter a number with units of KB or MB to filter out **Assets** resources smaller than the specified size.
|
|
81
|
+
- **Module Size Filter Tool**: Enter a number with units of KB or MB to filter out **Module** resources smaller than the specified size.
|
|
82
|
+
|
|
83
|
+
<img src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/bundle/bundle-size-analysis-selects.png" />
|
|
84
|
+
|
|
85
|
+
### Module Tag Explanation
|
|
86
|
+
|
|
87
|
+
The **Assets** tag is shown in the left image, from left to right representing: **Resource Size**, **[Initial Chunk](https://webpack.js.org/concepts/under-the-hood/#chunks)**, and **Code View**.
|
|
88
|
+
|
|
89
|
+
<div style={{ display: 'flex' }}>
|
|
90
|
+
<img
|
|
91
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/bundle/bundle-size-assets-tags.png"
|
|
92
|
+
height="200px"
|
|
93
|
+
width="360px"
|
|
94
|
+
style={{ margin: 'auto' }}
|
|
95
|
+
/>
|
|
96
|
+
<img
|
|
97
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/bundle/bundle-size-modules-tags.png"
|
|
98
|
+
height="300px"
|
|
99
|
+
width="440px"
|
|
100
|
+
style={{ margin: 'auto' }}
|
|
101
|
+
/>
|
|
102
|
+
</div>
|
|
103
|
+
|
|
104
|
+
The **Modules** tag is shown in the right image, from left to right representing:
|
|
105
|
+
|
|
106
|
+
- **Bundled Size**
|
|
107
|
+
- The final size of the module bundled into the artifact. Some modules labeled as `concatenated` are concatenated modules, which have a certain impact on this value. Please refer to the explanation of `concatenated module` below.
|
|
108
|
+
- **[Concatenated Module](https://webpack.js.org/plugins/module-concatenation-plugin/#root)**: Concatenated modules are modules that are optimized or concatenated into one closure during bundling. There are two types:
|
|
109
|
+
- One is the concatenated main module, indicating how many `Modules` are concatenated.
|
|
110
|
+
- The other is the concatenated sub-module, indicating which `Module` it is aggregated into. This sub-module cannot be further unpacked after bundling, so the specific `Bundled Size` cannot be determined. Only the size of the entire concatenated module is known, which is marked at the end of the main module.
|
|
111
|
+
- **Module Explorer** tag: Click to open the dependency analysis page between `Modules`.
|
|
112
|
+
- **Code View** tag: Click to expand code segments, including `Source` (source code), `Transformed` (compiled code), and `Bundled` (bundled code).
|
|
113
|
+
|
|
114
|
+
## Bundle Overview Tile Graph
|
|
115
|
+
|
|
116
|
+
Click the **"Bundle Analyzer Graph"** button on the **"Bundle Size"** page to view the classic tile graph.
|
|
117
|
+
|
|
118
|
+
<img
|
|
119
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/bundle/bundle-size-tile-graph.png"
|
|
120
|
+
width="500px"
|
|
121
|
+
style={{ margin: 'auto' }}
|
|
122
|
+
/>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Compilation Alerts
|
|
2
|
+
|
|
3
|
+
We have also integrated the ability to detect warnings based on compilation data. If the current compilation results contain data that matches the rules defined by us, the `Compile Alerts` module will appear below the **Rsdoctor** main interface, as shown in the following figure:
|
|
4
|
+
|
|
5
|
+
<img src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/compile/compile-alerts.png" />
|
|
6
|
+
|
|
7
|
+
Through this module, we can intuitively see some warning information about the compilation performance of our project, which helps us further optimize the compilation performance of the project.
|
|
8
|
+
|
|
9
|
+
## Rules
|
|
10
|
+
|
|
11
|
+
Currently, the compilation rules include:
|
|
12
|
+
|
|
13
|
+
:::tip
|
|
14
|
+
[Rule List](../more/rules)
|
|
15
|
+
:::
|
|
16
|
+
|
|
17
|
+
- `E1002` Default Import Check.
|
|
18
|
+
- `E1003` Loader Performance Optimization.
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# Compile Overall
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
On the homepage of **Rsdoctor**, there is a card called `Compile Overall` that provides information about the **compilation process** of the current project. The content is shown in the following image:
|
|
6
|
+
|
|
7
|
+
<img
|
|
8
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/overall/compile-overall-1.jpg"
|
|
9
|
+
width="400px"
|
|
10
|
+
height="600px"
|
|
11
|
+
style={{ margin: 'auto' }}
|
|
12
|
+
/>
|
|
13
|
+
|
|
14
|
+
:::tip
|
|
15
|
+
For each compilation phase, if the time data is displayed in <u>blue</u>, it means that you can <u>click to view the detailed time breakdown</u>.
|
|
16
|
+
:::
|
|
17
|
+
|
|
18
|
+
## Glossary
|
|
19
|
+
|
|
20
|
+
The following table explains the meaning and code implementation of each phase in the card:
|
|
21
|
+
|
|
22
|
+
| Phase Name | Description | Code Implementation |
|
|
23
|
+
| ---------------------------------------- | ------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
24
|
+
| <b><i>Bootstrap -> BeforeCompile</i></b> | Represents the time taken from project startup to before compilation starts | <ul><li>In `Webpack` or `Rspack` projects: Reports [process.uptime()](https://nodejs.org/dist/latest-v18.x/docs/api/process.html#processuptime) as the <b>duration</b> when **compiler.hooks.beforeCompile** is called</li></ul> |
|
|
25
|
+
| <b><i>Compile</i></b> | Represents the total time taken for the project compilation | <ul><li>In `Webpack` or `Rspack` projects: The <b>start time</b> is the time when **compiler.hooks.beforeCompile** is called, and the <b>end time</b> is the time when **compiler.hooks.afterCompile** is called</li></ul> |
|
|
26
|
+
| <b><i>AfterCompile -> Done</i></b> | Represents the time taken from compilation completion to the end of the entire process | <ul><li>In `Webpack` or `Rspack` projects: The <b>start time</b> is the time when **compiler.hooks.afterCompile** is called, and the <b>end time</b> is the time when **compiler.hooks.done** is called</li></ul> |
|
|
27
|
+
| <b><i>Minify</i></b> | Represents the time taken for file compression during the compilation process in most cases | <ul><li>In `Webpack` or `Rspack` projects: Calculates the sum of the time taken for each call of **compilation.hooks.optimizeChunkAssets** and **compilation.hooks.processAssets**</li></ul> |
|
|
28
|
+
|
|
29
|
+
## Usage Instructions
|
|
30
|
+
|
|
31
|
+
### Bootstrap -> BeforeCompile Details
|
|
32
|
+
|
|
33
|
+
By **clicking on the data of the `Bootstrap -> BeforeCompile` phase**, a popup will appear on the page, as shown in the following image:
|
|
34
|
+
|
|
35
|
+
<img
|
|
36
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/overall/compile-overall-boostrap.jpg"
|
|
37
|
+
width="600px"
|
|
38
|
+
style={{ margin: 'auto' }}
|
|
39
|
+
/>
|
|
40
|
+
|
|
41
|
+
The popup mainly contains a chart:
|
|
42
|
+
|
|
43
|
+
- The **x-axis** represents **time**
|
|
44
|
+
- The **y-axis** represents all the **hooks** that have been **tapped by plugins** before the **compiler.hooks.beforeCompile** is called
|
|
45
|
+
- The data in the chart represents the **start and end time** of each **hook**.
|
|
46
|
+
|
|
47
|
+
Hovering over a data point in the chart will display the following information in a tooltip:
|
|
48
|
+
|
|
49
|
+
- **hook**: the name of the hook
|
|
50
|
+
- **tap name**: the name value when [.tap](https://github.com/webpack/tapable#hookhookmap-interface) is called
|
|
51
|
+
- **start**: the start time
|
|
52
|
+
- **end**: the end time
|
|
53
|
+
- **duration**: the duration, calculated as `end - start`
|
|
54
|
+
|
|
55
|
+
### Compile Phase
|
|
56
|
+
|
|
57
|
+
In this section, you can navigate to "Compile Analysis" -> "Loader Analysis" -> [**"Loader Timeline"**](./loaders-timeline.mdx) in the navigation bar to view the timeline of loader compilation time.
|
|
58
|
+
|
|
59
|
+
### AfterCompile -> Done Details
|
|
60
|
+
|
|
61
|
+
By **clicking on the data of the `AfterCompile -> Done` phase**, a popup will appear on the page, as shown in the following image:
|
|
62
|
+
|
|
63
|
+
<img
|
|
64
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/overall/compile-overall-aftercompile-1.jpg"
|
|
65
|
+
width="600px"
|
|
66
|
+
height="400px"
|
|
67
|
+
style={{ margin: 'auto' }}
|
|
68
|
+
/>
|
|
69
|
+
|
|
70
|
+
The popup mainly contains a data table that shows the relevant data of the calls. The field meanings are as follows:
|
|
71
|
+
|
|
72
|
+
- **Plugin Tap Name**: the name value when [.tap](https://github.com/webpack/tapable#hookhookmap-interface) is called
|
|
73
|
+
- **Hook**: the name of the hook
|
|
74
|
+
- **calls**: the number of times the hook is called
|
|
75
|
+
- **duration(total)**: the total time of all the calls
|
|
76
|
+
|
|
77
|
+
Scrolling down the page will show the corresponding chart:
|
|
78
|
+
|
|
79
|
+
<img
|
|
80
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/overall/compile-overall-aftercompile-2.jpg"
|
|
81
|
+
width="600px"
|
|
82
|
+
style={{ margin: 'auto' }}
|
|
83
|
+
/>
|
|
84
|
+
|
|
85
|
+
The chart shows:
|
|
86
|
+
|
|
87
|
+
- The **x-axis** represents **time**
|
|
88
|
+
- The **y-axis** represents all the **hooks** that have been **tapped by plugins** between **compiler.hooks.afterCompile** and **compiler.hooks.done**
|
|
89
|
+
- The data in the chart represents the **start and end time** of each **hook**.
|
|
90
|
+
|
|
91
|
+
Hovering over a data point in the chart will display the following information in a tooltip:
|
|
92
|
+
|
|
93
|
+
- **hook**: the name of the hook
|
|
94
|
+
- **tap name**: the name value when [.tap](https://github.com/webpack/tapable#hookhookmap-interface) is called
|
|
95
|
+
- **start**: the start time
|
|
96
|
+
- **end**: the end time
|
|
97
|
+
- **duration**: the duration, calculated as `end - start`
|
|
98
|
+
|
|
99
|
+
### Minify Details
|
|
100
|
+
|
|
101
|
+
:::tip
|
|
102
|
+
Minify details are currently not available for Rspack projects.
|
|
103
|
+
:::
|
|
104
|
+
|
|
105
|
+
By **clicking on the data of the `Minify` phase**, a popup will appear on the page, as shown in the following images:
|
|
106
|
+
|
|
107
|
+
| <img src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/overall/compile-overall-minify-1.jpg" /> | <img src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/overall/compile-overall-minify-2.jpg" /> |
|
|
108
|
+
| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
|
|
109
|
+
|
|
110
|
+
The content in the popup has similar meanings to the previous paragraphs, so it will not be repeated here.
|
|
111
|
+
|
|
112
|
+
## Reference Documentation
|
|
113
|
+
|
|
114
|
+
- [**Rspack Hooks**](https://www.rspack.dev/api/plugin-api.html#beforecompile)
|
|
115
|
+
- [**Webpack Hooks**](https://webpack.js.org/api/compilation-hooks/)
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Loaders Analysis
|
|
2
|
+
|
|
3
|
+
**Rsdoctor** provides the `Loader Analysis` module, which mainly provides statistics on Loaders at the **directory and file level**. It helps you analyze the compilation of **folders** and **individual files** by Loaders.
|
|
4
|
+
|
|
5
|
+
Click on the navigation bar **"Compile Analysis"** -> **"Loader Analysis"** option to view the compilation analysis report. Of course, this page will only display the features if the `loader` analysis capability is enabled [features](/config/options/options).
|
|
6
|
+
|
|
7
|
+
## Overview
|
|
8
|
+
|
|
9
|
+
Firstly, in this module, you can directly see the file tree structure of all files processed by Loaders, as shown in the following image:
|
|
10
|
+
|
|
11
|
+
<img
|
|
12
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/compile/loader-anlaysis-all.png"
|
|
13
|
+
width="600px"
|
|
14
|
+
style={{ margin: 'auto' }}
|
|
15
|
+
/>
|
|
16
|
+
|
|
17
|
+
In the **filter search box** at the top, you can filter Loaders and search for file names. After entering the name, the file tree dynamically displays the matching files, making it easier to locate the files you want to query.
|
|
18
|
+
|
|
19
|
+
In the file tree structure below, there are two interactive forms to obtain different data information:
|
|
20
|
+
|
|
21
|
+
- **Clicking on a directory**: Displays **Loader data for the file directory**.
|
|
22
|
+
- **Clicking on a file**: Displays **detailed Loader information for the individual file**.
|
|
23
|
+
|
|
24
|
+
The corresponding details will be explained in the following paragraphs.
|
|
25
|
+
|
|
26
|
+
## Loader Data for File Directories
|
|
27
|
+
|
|
28
|
+
By **clicking on a selected directory**, you can see the **time statistics of all Loaders in the selected directory** ([estimated time consumption](../../guide/more/faq#loader-time-consuming-data-is-inaccurate)) on the right side of the file tree. The content of the "Statistics of xxx" card is shown in the following image:
|
|
29
|
+
|
|
30
|
+
<img
|
|
31
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/compile/loader-anlaysis-table.png"
|
|
32
|
+
width="300px"
|
|
33
|
+
height="400px"
|
|
34
|
+
style={{ margin: 'auto' }}
|
|
35
|
+
/>
|
|
36
|
+
|
|
37
|
+
Here are the main information we can obtain:
|
|
38
|
+
|
|
39
|
+
- The number of **files processed** and the **estimated time consumption** for an **individual Loader** in the selected directory.
|
|
40
|
+
- The number of **files processed** and the **estimated time consumption** for **all Loaders** in the selected directory.
|
|
41
|
+
|
|
42
|
+
Usually, we can select some **third-party library directories** within `node_modules` and then determine whether it is necessary to set [module.rule.exclude](https://webpack.js.org/configuration/module/#ruleexclude) for this directory based on the Loader's time consumption information. This helps reduce the processing time of common Loaders like `babel-loader`.
|
|
43
|
+
|
|
44
|
+
If it is a third-party library with **advanced ES syntax** or a package within the **workspace**, we need to make more granular decisions at the individual file level based on the content in the next paragraph to optimize Loader performance.
|
|
45
|
+
|
|
46
|
+
## Loader Details for Individual Files
|
|
47
|
+
|
|
48
|
+
By **clicking on a file**, a modal will appear with the following content:
|
|
49
|
+
|
|
50
|
+
- "**Left section**": A list of all **executed Loaders** for the clicked file and the **time consumption** of each Loader for compiling the file.
|
|
51
|
+
|
|
52
|
+
- "**Right section**": Information about the **input, output**, and **parameter data** of the selected Loader at the time of invocation.
|
|
53
|
+
|
|
54
|
+
<img
|
|
55
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/compile/loader-analysis-code-change.png"
|
|
56
|
+
width="600px"
|
|
57
|
+
style={{ margin: 'auto' }}
|
|
58
|
+
/>{' '}
|
|
59
|
+
|
|
60
|
+
- **Parameter Data**: Click on "**show more**" or the expand button in the top left corner to view the corresponding parameter information.
|
|
61
|
+
|
|
62
|
+
<img
|
|
63
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/compile/loader-analysis-options.png"
|
|
64
|
+
width="600px"
|
|
65
|
+
style={{ margin: 'auto' }}
|
|
66
|
+
/>{' '}
|
|
67
|
+
|
|
68
|
+
As shown in the image, we can obtain the following information about the **target file**:
|
|
69
|
+
|
|
70
|
+
- All the Loaders it has gone through.
|
|
71
|
+
- The **parameter data** on the [**Loader Context**](https://webpack.js.org/api/loaders/#the-loader-context).
|
|
72
|
+
- The input and output of the Loader.
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Loaders Timeline
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
By clicking on the "Compile Analysis" -> "Loader Analysis" option in the navigation bar of **Rsdoctor**, we can see the **execution timeline** of all loaders in the current project. Please note that this page requires the `loader` analysis capability to be enabled in order to display the [features](/config/options/options). The content of this page is shown in the following image:
|
|
6
|
+
|
|
7
|
+
<img
|
|
8
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/compile/loader-timeline-overall.png"
|
|
9
|
+
width="700"
|
|
10
|
+
style={{ margin: 'auto' }}
|
|
11
|
+
/>
|
|
12
|
+
|
|
13
|
+
## Glossary
|
|
14
|
+
|
|
15
|
+
The fields in the chart on the page have the following meanings:
|
|
16
|
+
|
|
17
|
+
| Term | Description |
|
|
18
|
+
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------- |
|
|
19
|
+
| <b><i>files</i></b> | Represents the **total number of files** processed by the loader |
|
|
20
|
+
| <b><i>files(node_modules)</i></b> | Represents the number of files processed by the loader within `node_modules` |
|
|
21
|
+
| <b><i>files(outside the cwd)</i></b> | Represents the number of files processed by the loader outside of the `cwd` |
|
|
22
|
+
| <b><i>duration</i></b> | Represents the **estimated time** taken by the loader to execute |
|
|
23
|
+
| <b><i>start(min)</i></b> | Represents the **earliest start time** among all the data of the loader |
|
|
24
|
+
| <b><i>end(max)</i></b> | Represents the **latest end time** among all the data of the loader |
|
|
25
|
+
| <b><i>isPitch</i></b> | Represents whether the loader execution is a [pitch](https://webpack.js.org/api/loaders/#pitching-loader) function or not |
|
|
26
|
+
| <b><i>filepath</i></b> | Represents the **file path** received by the loader |
|
|
27
|
+
| <b><i>start</i></b> | Represents the **start time** of the loader execution |
|
|
28
|
+
| <b><i>end</i></b> | Represents the **end time** of the loader execution |
|
|
29
|
+
|
|
30
|
+
## Usage
|
|
31
|
+
|
|
32
|
+
In the **Loaders Timeline**, the **left Y-axis** represents the **loader names**, while the **top X-axis** corresponds to **time (hour:minute:second)**. We can use the zoom feature and hover over the chart to view more detailed information about loader invocations.
|
|
33
|
+
|
|
34
|
+
There are two selector at the top of the page, where you can enter the **Loaders** or **Files** you want to filter, and the timeline chart will be displayed based on the filtered content.
|
|
35
|
+
|
|
36
|
+
<img
|
|
37
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/compile/loader-timeline-overall.png"
|
|
38
|
+
width="700"
|
|
39
|
+
style={{ margin: 'auto' }}
|
|
40
|
+
/>
|
|
41
|
+
|
|
42
|
+
### Viewing Overall Loader Information
|
|
43
|
+
|
|
44
|
+
If we want to view the **summary of all data** for a single loader, we can hover over the position shown in the following image:
|
|
45
|
+
|
|
46
|
+
<img
|
|
47
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/compile/loader-timeline-loader-timeline.png"
|
|
48
|
+
width="700"
|
|
49
|
+
style={{ margin: 'auto' }}
|
|
50
|
+
/>
|
|
51
|
+
|
|
52
|
+
At this point, we can see the **summary of all invocations** within a single loader (refer to the [Glossary](#glossary) for field definitions), as shown in the following image:
|
|
53
|
+
|
|
54
|
+
<img
|
|
55
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/compile/loader-timeline-loader-card.png"
|
|
56
|
+
width="700"
|
|
57
|
+
style={{ margin: 'auto' }}
|
|
58
|
+
/>
|
|
59
|
+
|
|
60
|
+
### Viewing Individual Loader Invocation Information
|
|
61
|
+
|
|
62
|
+
If we want to view the **information of a single invocation** for a loader, we can hover over any **colored stripe** within the position shown in the following image. At this point, we can see the **information of the current invocation** within a single loader (refer to the [Glossary](#glossary) for field definitions), as shown in the following image:
|
|
63
|
+
|
|
64
|
+
<img
|
|
65
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/compile/loader-timeline-loader-file.png"
|
|
66
|
+
width="700"
|
|
67
|
+
style={{ margin: 'auto' }}
|
|
68
|
+
/>
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Module Dependency Analysis
|
|
2
|
+
|
|
3
|
+
## Introduction
|
|
4
|
+
|
|
5
|
+
**Rsdoctor** provides the `Module Imported Chain Analysis` module, which is mainly used to analyze the dependency tree of a specific module, i.e. the modules that depend on it, similar to [Webpack's stats.reasons](https://webpack.js.org/configuration/stats/#statsreasons).
|
|
6
|
+
|
|
7
|
+
In this section, you can analyze the imported chain of a module. If you have the need to split the package or want to see why a certain module is being imported, you can quickly and clearly locate the reference chain through the `Module Imported Chain Analysis`.
|
|
8
|
+
|
|
9
|
+
<img
|
|
10
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/bundle/module-analysis-tree.png"
|
|
11
|
+
width="600px"
|
|
12
|
+
style={{ margin: 'auto' }}
|
|
13
|
+
/>
|
|
14
|
+
|
|
15
|
+
### This Section’s Entry
|
|
16
|
+
|
|
17
|
+
Clicking on an **Assets** in the **[Bundle Size](./bundle-size)** page will display the `「Module Tree」` on the right side. Each **Module** will have the following icon next to it, click on it to view the imported chain of that **Module**.
|
|
18
|
+
|
|
19
|
+
<img
|
|
20
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/bundle/module-analysis-entry.png"
|
|
21
|
+
height="300px"
|
|
22
|
+
width="440px"
|
|
23
|
+
style={{ margin: 'auto' }}
|
|
24
|
+
/>
|
|
25
|
+
|
|
26
|
+
### Glossary
|
|
27
|
+
|
|
28
|
+
- **`Reasons`**: As the name suggests, it means the reasons why a `Module` exists. Reasons indicate which other `Module`s import this `Module`, and the entire `Reasons Tree` represents the upstream reference chain of this `Module`, including both direct and indirect parent `Module`s. [Similar to Webpack's stats.reasons.](https://webpack.js.org/configuration/stats/#statsreasons)
|
|
29
|
+
- **`Dependencies`**: The `Module`s that this `Module` depends on.
|
|
30
|
+
|
|
31
|
+
## Reasons Dependency Tree
|
|
32
|
+
|
|
33
|
+
### Introduction
|
|
34
|
+
|
|
35
|
+
The `Reasons Tree` displays the dependency chain of this `Module`, showing which other `Modules` directly or indirectly import it. In this dependency tree, you can view the `Bundled Size` of the `Modules` along the dependency chain. You can also click the right arrow `>` to navigate to the `Module Dependency Analysis` page for that specific `Module`.
|
|
36
|
+
|
|
37
|
+
- **Parent-child relationship in the dependency tree**: The parent node file is the one that is depended upon by the child node file and is therefore bundled into the output. Similarly, the grandchild node file is depended upon by the child node and is bundled into the output, and so on.
|
|
38
|
+
|
|
39
|
+
<img
|
|
40
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/bundle/module-analysis-jump-icon.png"
|
|
41
|
+
width="700px"
|
|
42
|
+
style={{ margin: 'auto' }}
|
|
43
|
+
/>
|
|
44
|
+
|
|
45
|
+
- The `Usage` tag displays the purpose of various module tags.
|
|
46
|
+
|
|
47
|
+
- The `Concatenated` tag:
|
|
48
|
+
|
|
49
|
+
- The `Concatenated` tag indicates that the module is a concatenated sub-module. Hover over it to see which main module it is aggregated into. This type of aggregated module cannot be further unpacked, so the specific `Bundled Size` cannot be determined, only the size of the entire concatenated module can be known.
|
|
50
|
+
- Glossary: A **concatenated module** is when multiple modules are promoted or **concatenated into a closure** during packaging. For an explanation of `Concatenated Module`, refer to the [Glossary](guide/usage/bundle-size#glossary).
|
|
51
|
+
|
|
52
|
+
- The `!` tag, hover over it to display the detailed path of the module.
|
|
53
|
+
|
|
54
|
+
<img
|
|
55
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/bundle/module-analysis-icons.png"
|
|
56
|
+
width="600px"
|
|
57
|
+
style={{ margin: 'auto' }}
|
|
58
|
+
/>
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Plugin Analysis
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
In the **Rsdoctor** `Compile Analysis` secondary page `Plugins Analysis`, we can see the invocation data of all **Compiler Hooks** and **Compilation Hooks** used by the current Rspack or Webpack project. The content is shown in the following figure:
|
|
6
|
+
|
|
7
|
+
<img
|
|
8
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/compile/plugins-analysis-overall.png"
|
|
9
|
+
width={'600px'}
|
|
10
|
+
style={{ margin: 'auto' }}
|
|
11
|
+
/>
|
|
12
|
+
|
|
13
|
+
:::tip
|
|
14
|
+
The plugin time will also calculate the internal plugin time of Rsdoctor.
|
|
15
|
+
:::
|
|
16
|
+
|
|
17
|
+
## Glossary
|
|
18
|
+
|
|
19
|
+
The meanings of the fields in the data statistics table on the page are as follows:
|
|
20
|
+
|
|
21
|
+
| Term | Description |
|
|
22
|
+
| ----------------------------- | --------------------------------------------------------------------------------------------------------- |
|
|
23
|
+
| <b><i>Plugin Tap Name</i></b> | Represents the name value when [.tap is called](https://github.com/webpack/tapable#hookhookmap-interface) |
|
|
24
|
+
| <b><i>Hook</i></b> | Represents the **hook name** |
|
|
25
|
+
| <b><i>calls</i></b> | Represents the **number of times called** |
|
|
26
|
+
| <b><i>duration(total)</i></b> | Represents the **total time of all calls** |
|
|
27
|
+
|
|
28
|
+
## Usage Instructions
|
|
29
|
+
|
|
30
|
+
### View Builder Config
|
|
31
|
+
|
|
32
|
+
If we need to view the Webpack configuration of the project, we can click on `View Builder Config` in the upper right corner of the card. A floating layer will pop up, which contains the serialized **Builder Config**, as shown in the following figure:
|
|
33
|
+
|
|
34
|
+
<img
|
|
35
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/compile/plugins-analysis-config.png"
|
|
36
|
+
width={'400px'}
|
|
37
|
+
style={{ margin: 'auto' }}
|
|
38
|
+
/>
|
|
39
|
+
|
|
40
|
+
## Reference Documentation
|
|
41
|
+
|
|
42
|
+
- [**Rspack Hooks**](https://www.rspack.dev/api/plugin-api.html#beforecompile)
|
|
43
|
+
- [**Webpack Hooks**](https://webpack.js.org/api/compilation-hooks/)
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Project Overall
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
In the main page of **Rsdoctor**, we can see a card named `Project Overall`, which provides information about the current project's **configuration, version, and alerts**. The content is shown in the following image:
|
|
6
|
+
|
|
7
|
+
<img
|
|
8
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/project-overall-1.jpg"
|
|
9
|
+
width="400px"
|
|
10
|
+
height="600px"
|
|
11
|
+
style={{ margin: 'auto' }}
|
|
12
|
+
/>
|
|
13
|
+
|
|
14
|
+
## Glossary
|
|
15
|
+
|
|
16
|
+
| Term | Description |
|
|
17
|
+
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
18
|
+
| <b><i>errors</i></b> | Represents the **error** level rules detected by Rsdoctor during the current run |
|
|
19
|
+
| <b><i>warns</i></b> | Represents the **warn** level rules detected by Rsdoctor during the current run |
|
|
20
|
+
| <b><i>webpack</i></b> | Represents the Webpack version obtained during the current run |
|
|
21
|
+
| <b><i>cwd</i></b> | Represents the current working directory during the current run, i.e., [process.cwd()](https://nodejs.org/dist/latest-v18.x/docs/api/process.html#processcwd) |
|
|
22
|
+
| <b><i>cpu</i></b> | Represents the CPU information |
|
|
23
|
+
| <b><i>memory</i></b> | Represents the memory information during the current run |
|
|
24
|
+
| <b><i>node</i></b> | Represents the version number of [Node.js](https://nodejs.org/) |
|
|
25
|
+
| <b><i>yarn</i></b> | Represents the version number of [Yarn](https://yarnpkg.com/), displayed as `Not Found` if not found |
|
|
26
|
+
| <b><i>npm</i></b> | Represents the version number of [npm](https://www.npmjs.com/) |
|
|
27
|
+
| <b><i>pnpm</i></b> | Represents the version number of [pnpm](https://pnpm.io/), displayed as `Not Found` if not found |
|
|
28
|
+
|
|
29
|
+
## Usage
|
|
30
|
+
|
|
31
|
+
### View Builder Config
|
|
32
|
+
|
|
33
|
+
If we need to view the Webpack configuration of the project, we can click on `View Builder Config` in the top right corner of the card. A popup window will appear, containing the serialized [Webpack Config](https://webpack.js.org/configuration/), as shown in the following image:
|
|
34
|
+
|
|
35
|
+
<img
|
|
36
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/project-overall-config.jpg"
|
|
37
|
+
width="500px"
|
|
38
|
+
style={{ margin: 'auto' }}
|
|
39
|
+
/>
|
|
40
|
+
|
|
41
|
+
### errors / warns
|
|
42
|
+
|
|
43
|
+
If the numbers displayed in the `errors` and `warns` sections of the card are greater than 0, we can click on them to view the corresponding details list. The following image shows an example using `warns`:
|
|
44
|
+
|
|
45
|
+
<img
|
|
46
|
+
src="https://lf3-static.bytednsdoc.com/obj/eden-cn/lognuvj/rsdoctor/docs/usage/overall/project-overall-warning.jpg"
|
|
47
|
+
width="500px"
|
|
48
|
+
style={{ margin: 'auto' }}
|
|
49
|
+
/>
|
|
50
|
+
|
|
51
|
+
We can see the list of `warn` level alerts detected by Rsdoctor.
|