Skip to content

Commit 7fd6d64

Browse files
authored
docs: improve virtual-modules-plugin documentation (#11467)
1 parent e079ed8 commit 7fd6d64

File tree

6 files changed

+55
-39
lines changed

6 files changed

+55
-39
lines changed

website/components/i18n/en.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"moment-locales-webpack-plugin-desc": "Support for this plugin was implemented in v0.7.0, please upgrade the Rspack version to use it",
1717
"resolve-plugin-un-support-desc": "`resolve.plugins` option not supported",
1818
"progress-plugin-desc": "Use [webpackbar](https://www.npmjs.com/package/webpackbar) instead",
19-
"webpack-virtual-modules-desc": "Use [rspack-plugin-virtual-module](https://github.com/rspack-contrib/rspack-plugins/tree/main/packages/plugin-virtual-module) instead",
19+
"webpack-virtual-modules-desc": "Use [VirtualModulesPlugin](/plugins/rspack/virtual-modules-plugin) instead",
2020
"webpack-manifest-plugin-desc": "Use [rspack-manifest-plugin](https://github.com/rspack-contrib/rspack-manifest-plugin) instead",
2121
"workbox-webpack-plugin-desc": "Use [@aaroon/workbox-rspack-plugin](https://github.com/Clarkkkk/workbox-rspack-plugin) instead",
2222
"webpack-subresource-integrity-desc": "Use [SubresourceIntegrityPlugin](/plugins/rspack/subresource-integrity-plugin) instead",

website/components/i18n/zh.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
"image-minimizer-webpack-plugin-desc": "仅支持 [loader](https://www.npmjs.com/package/image-minimizer-webpack-plugin#standalone-loader) 用法",
1717
"resolve-plugin-un-support-desc": "不支持 `resolve.plugins`",
1818
"progress-plugin-desc": "使用 [webpackbar](https://www.npmjs.com/package/webpackbar) 替代",
19-
"webpack-virtual-modules-desc": "使用 [rspack-plugin-virtual-module](https://github.com/rspack-contrib/rspack-plugins/tree/main/packages/plugin-virtual-module) 替代",
19+
"webpack-virtual-modules-desc": "使用 [VirtualModulesPlugin](/plugins/rspack/virtual-modules-plugin) 替代",
2020
"webpack-manifest-plugin-desc": "使用 [rspack-manifest-plugin](https://github.com/rspack-contrib/rspack-manifest-plugin) 替代",
2121
"workbox-webpack-plugin-desc": "使用 [@aaroon/workbox-rspack-plugin](https://github.com/Clarkkkk/workbox-rspack-plugin) 替代",
2222
"webpack-subresource-integrity-desc": "使用 [SubresourceIntegrityPlugin](/zh/plugins/rspack/subresource-integrity-plugin) 替代",

website/docs/en/plugins/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ Including:
1616

1717
- [CircularDependencyRspackPlugin](/plugins/rspack/circular-dependency-rspack-plugin)
1818
- [CopyRspackPlugin](/plugins/rspack/copy-rspack-plugin)
19+
- [CssChunkingPlugin](/plugins/rspack/css-chunking-plugin)
1920
- [CssExtractRspackPlugin](/plugins/rspack/css-extract-rspack-plugin)
2021
- [HtmlRspackPlugin](/plugins/rspack/html-rspack-plugin)
2122
- [LightningCssMinimizerRspackPlugin](/plugins/rspack/lightning-css-minimizer-rspack-plugin)
2223
- [SubresourceIntegrityPlugin](/plugins/rspack/subresource-integrity-plugin)
2324
- [SwcJsMinimizerRspackPlugin](/plugins/rspack/swc-js-minimizer-rspack-plugin)
24-
- [CssChunkingPlugin](/plugins/rspack/css-chunking-plugin)
2525
- [VirtualModulesPlugin](/plugins/rspack/virtual-modules-plugin)
2626

2727
## Compatible plugins from the webpack ecosystem

website/docs/en/plugins/rspack/virtual-modules-plugin.mdx

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,33 @@ import { ApiMeta } from '@components/ApiMeta.tsx';
22

33
# VirtualModulesPlugin
44

5-
<ApiMeta specific={['Rspack']} />
5+
<ApiMeta specific={['Rspack']} addedVersion="1.5.0" />
66

7-
The `rspack.experiments.VirtualModulesPlugin` is a Rust port of the [`webpack-virtual-modules`](https://github.com/sysgears/webpack-virtual-modules) plugin. It's deeply integrated with Rspack to deliver the same functionality with enhanced performance.
7+
`VirtualModulesPlugin` allows you to create, modify, and delete files in memory, and Rspack treats these virtual files as if they were real files existing in the file system.
8+
9+
This plugin is a Rust implementation of [webpack-virtual-modules](https://github.com/sysgears/webpack-virtual-modules), deeply integrated with Rspack to provide equivalent functionality with better performance.
810

911
## Usage
1012

1113
### Basic usage
1214

13-
You can pass virtual modules to the constructor when creating a new VirtualModulesPlugin instance:
15+
When creating a `VirtualModulesPlugin` instance, you can directly configure virtual modules in the constructor:
1416

1517
```ts
16-
new rspack.experiments.VirtualModulesPlugin(modules?: Record<string, string>)
17-
```
18+
import { rspack } from '@rspack/core';
1819

19-
**Parameters:**
20+
new rspack.experiments.VirtualModulesPlugin({
21+
// ...modules
22+
});
23+
```
2024

21-
- `modules` (optional): An object where keys are file paths and values are file contents.
25+
- **Parameters:**
26+
- `modules` (optional): An object where keys are file paths and values are file contents.
2227

23-
```js title="rspack.config.js"
24-
const rspack = require('@rspack/core');
28+
```js title="rspack.config.mjs"
29+
import { rspack } from '@rspack/core';
2530

26-
module.exports = {
31+
export default {
2732
plugins: [
2833
new rspack.experiments.VirtualModulesPlugin({
2934
'src/generated/config.js': 'export default { version: "1.0.0" };',
@@ -40,27 +45,30 @@ module.exports = {
4045

4146
You can dynamically create or modify virtual modules using the `writeModule` method:
4247

48+
- **Type:**
49+
4350
```ts
44-
writeModule(filePath: string, contents: string): void
51+
function writeModule(filePath: string, contents: string): void;
4552
```
4653

47-
**Parameters:**
54+
- **Parameters:**
55+
- `filePath`: The virtual file path relative to [compiler.context](/api/javascript-api/compiler#context)
56+
- `contents`: The content of the virtual file
4857

49-
- `filePath`: The virtual file path relative to `compiler.context`
50-
- `contents`: The content of the virtual file
58+
- **Example:**
5159

52-
```js title="rspack.config.js"
53-
const rspack = require('@rspack/core');
60+
```js title="rspack.config.mjs"
61+
import { rspack } from '@rspack/core';
5462

5563
const virtualModulesPlugin = new rspack.experiments.VirtualModulesPlugin();
5664

57-
module.exports = {
65+
export default {
5866
plugins: [
5967
virtualModulesPlugin,
6068
{
6169
apply(compiler) {
6270
compiler.hooks.beforeCompile.tap('MyPlugin', () => {
63-
// Dynamically create modules
71+
// Dynamically create virtual modules
6472
const moduleContent = generateSomeContent();
6573
virtualModulesPlugin.writeModule('src/dynamic.js', moduleContent);
6674
});

website/docs/zh/plugins/index.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,12 @@ Rspack 结合自身实现特点,提供了一些独有的插件,替代对应
1616

1717
- [CircularDependencyRspackPlugin](/plugins/rspack/circular-dependency-rspack-plugin)
1818
- [CopyRspackPlugin](/plugins/rspack/copy-rspack-plugin)
19+
- [CssChunkingPlugin](/plugins/rspack/css-chunking-plugin)
1920
- [CssExtractRspackPlugin](/plugins/rspack/css-extract-rspack-plugin)
2021
- [HtmlRspackPlugin](/plugins/rspack/html-rspack-plugin)
2122
- [LightningCssMinimizerRspackPlugin](/plugins/rspack/lightning-css-minimizer-rspack-plugin)
2223
- [SubresourceIntegrityPlugin](/plugins/rspack/subresource-integrity-plugin)
2324
- [SwcJsMinimizerRspackPlugin](/plugins/rspack/swc-js-minimizer-rspack-plugin)
24-
- [CssChunkingPlugin](/plugins/rspack/css-chunking-plugin)
2525
- [VirtualModulesPlugin](/plugins/rspack/virtual-modules-plugin)
2626

2727
## 兼容的 webpack 生态插件

website/docs/zh/plugins/rspack/virtual-modules-plugin.mdx

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,33 @@ import { ApiMeta } from '@components/ApiMeta.tsx';
22

33
# VirtualModulesPlugin
44

5-
<ApiMeta specific={['Rspack']} />
5+
<ApiMeta specific={['Rspack']} addedVersion="1.5.0" />
66

7-
`rspack.experiments.VirtualModulesPlugin` 是 Rust 实现的 [`webpack-virtual-modules`](https://github.com/sysgears/webpack-virtual-modules) 插件,它与 Rspack 深度集成,在提供相同功能的同时拥有更好的性能。
7+
`VirtualModulesPlugin` 允许你在内存中创建、修改和删除文件,Rspack 会将这些虚拟文件视为真实存在于文件系统中的文件进行处理。
8+
9+
该插件是 [webpack-virtual-modules](https://github.com/sysgears/webpack-virtual-modules) 的 Rust 实现版本,与 Rspack 深度集成,在提供相同功能的同时拥有更好的性能。
810

911
## 使用方法
1012

1113
### 基础用法
1214

13-
创建一个新的 VirtualModulesPlugin 实例,可以在构造函数中传入虚拟模块
15+
创建 `VirtualModulesPlugin` 实例时,可以在构造函数中直接配置虚拟模块
1416

1517
```ts
16-
new rspack.experiments.VirtualModulesPlugin(modules?: Record<string, string>)
17-
```
18+
import { rspack } from '@rspack/core';
1819

19-
**参数:**
20+
new rspack.experiments.VirtualModulesPlugin({
21+
// ...modules
22+
});
23+
```
2024

21-
- `modules`(可选):一个对象,其中键是文件路径,值是文件内容。
25+
- **参数:**
26+
- `modules`(可选):一个对象,其中键是文件路径,值是文件内容。
2227

23-
```js title="rspack.config.js"
24-
const rspack = require('@rspack/core');
28+
```js title="rspack.config.mjs"
29+
import { rspack } from '@rspack/core';
2530

26-
module.exports = {
31+
export default {
2732
plugins: [
2833
new rspack.experiments.VirtualModulesPlugin({
2934
'src/generated/config.js': 'export default { version: "1.0.0" };',
@@ -40,21 +45,24 @@ module.exports = {
4045

4146
你可以使用 `writeModule` 方法动态创建或修改虚拟模块:
4247

48+
- **类型:**
49+
4350
```ts
44-
writeModule(filePath: string, contents: string): void
51+
function writeModule(filePath: string, contents: string): void;
4552
```
4653

47-
**参数:**
54+
- **参数:**
55+
- `filePath`:相对于 [compiler.context](/api/javascript-api/compiler#context) 的虚拟文件路径
56+
- `contents`:虚拟文件的内容
4857

49-
- `filePath`:相对于 `compiler.context` 的虚拟文件路径
50-
- `contents`:虚拟文件的内容
58+
- **示例:**
5159

52-
```js title="rspack.config.js"
53-
const rspack = require('@rspack/core');
60+
```js title="rspack.config.mjs"
61+
import { rspack } from '@rspack/core';
5462

5563
const virtualModulesPlugin = new rspack.experiments.VirtualModulesPlugin();
5664

57-
module.exports = {
65+
export default {
5866
plugins: [
5967
virtualModulesPlugin,
6068
{

0 commit comments

Comments
 (0)