{"id":27017419,"url":"https://github.com/rspack-contrib/rsbuild-plugin-virtual-module","last_synced_at":"2025-05-08T00:18:34.604Z","repository":{"id":284675121,"uuid":"955697584","full_name":"rspack-contrib/rsbuild-plugin-virtual-module","owner":"rspack-contrib","description":"Support VirtualModules in Rsbuild. The simplest and most flexible way to build with a compiling magic 🪄","archived":false,"fork":false,"pushed_at":"2025-04-28T04:07:55.000Z","size":45,"stargazers_count":5,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-06T19:14:01.335Z","etag":null,"topics":["rsbuild","rsbuild-plugin","virtual-modules"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rspack-contrib.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-27T03:45:11.000Z","updated_at":"2025-04-28T04:09:46.000Z","dependencies_parsed_at":"2025-03-30T02:30:05.033Z","dependency_job_id":null,"html_url":"https://github.com/rspack-contrib/rsbuild-plugin-virtual-module","commit_stats":null,"previous_names":["sooniter/rsbuild-plugin-virtual-module","rspack-contrib/rsbuild-plugin-virtual-module"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rspack-contrib%2Frsbuild-plugin-virtual-module","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rspack-contrib%2Frsbuild-plugin-virtual-module/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rspack-contrib%2Frsbuild-plugin-virtual-module/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rspack-contrib%2Frsbuild-plugin-virtual-module/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rspack-contrib","download_url":"https://codeload.github.com/rspack-contrib/rsbuild-plugin-virtual-module/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252752073,"owners_count":21798724,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["rsbuild","rsbuild-plugin","virtual-modules"],"created_at":"2025-04-04T16:02:12.584Z","updated_at":"2025-05-08T00:18:34.596Z","avatar_url":"https://github.com/rspack-contrib.png","language":"TypeScript","funding_links":[],"categories":["Plugins"],"sub_categories":["Rsbuild Plugins"],"readme":"# rsbuild-plugin-virtual-module🧙\n\nThe simplest and most flexible way to build with a compiling magic 🪄\n\nAn Rsbuild plugin that allows you to create virtual modules, the pro version of [rspack-plugin-virtual-module](https://github.com/rspack-contrib/rspack-plugin-virtual-module) with loader API.\n\n\u003cp\u003e\n  \u003ca href=\"https://npmjs.com/package/rsbuild-plugin-virtual-module\"\u003e\n   \u003cimg src=\"https://img.shields.io/npm/v/rsbuild-plugin-virtual-module?style=flat-square\u0026colorA=564341\u0026colorB=EDED91\" alt=\"npm version\" /\u003e\n  \u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square\u0026colorA=564341\u0026colorB=EDED91\" alt=\"license\" /\u003e\n  \u003ca href=\"https://npmcharts.com/compare/rsbuild-plugin-virtual-module?minimal=true\"\u003e\u003cimg src=\"https://img.shields.io/npm/dm/rsbuild-plugin-virtual-module.svg?style=flat-square\u0026colorA=564341\u0026colorB=EDED91\" alt=\"downloads\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n## Usage\n\nInstall:\n\n```bash\nnpm add rsbuild-plugin-virtual-module -D\n```\n\nAdd plugin to your `rsbuild.config.ts`:\n\n```ts\n// rsbuild.config.ts\nimport { pluginVirtualModule } from 'rsbuild-plugin-virtual-module';\n\nexport default {\n  plugins: [\n    pluginVirtualModule({\n      virtualModules: {\n        'virtual-foo': async () =\u003e {\n          return 'export default {}';\n        },\n      },\n    }),\n  ],\n};\n```\n\n```ts\nimport foo from 'virtual-foo';\n\nconsole.log(foo); // {}\n```\n\n## Options\n\n### virtualModules\n\nGenerate virtual modules, where the key is the name of the virtual module and the value is `TransformHandler`. See [Rsbuild - api.transform](https://rsbuild.dev/plugins/dev/core#apitransform)\n\n- Type:\n\n```ts\nimport type { TransformHandler } from '@rsbuild/core';\n\ntype VirtualModules = Record\u003cstring, TransformHandler\u003e;\n```\n\n- Default: `{}`\n- Example:\n\n```js\npluginVirtualModule({\n  virtualModules: {\n    'virtual-json-list': async ({ addDependency, addContextDependency }) =\u003e {\n      const jsonFolderPath = join(__dirname, 'json');\n      const ls = await readdir(jsonFolderPath);\n      addContextDependency(jsonFolderPath);\n\n      const res: Record\u003cstring, unknown\u003e = {};\n      for (const file of ls) {\n        if (file.endsWith('.json')) {\n          const jsonFilePath = join(jsonFolderPath, file);\n          const jsonContent = await readFile(jsonFilePath, 'utf-8');\n          addDependency(jsonFilePath);\n          res[file] = JSON.parse(jsonContent);\n        }\n      }\n\n      return `export default ${JSON.stringify(res)}`;\n    },\n  },\n});\n```\n\n```js\nimport jsonList from 'virtual-json-list';\nconsole.log(jsonList);\n```\n\n### tempDir\n\nThe name of the virtual module folder under `node_modules`.\n\n- Type: `string`\n- Default: `.rsbuild-virtual-module`\n\n## License\n\n[MIT](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frspack-contrib%2Frsbuild-plugin-virtual-module","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frspack-contrib%2Frsbuild-plugin-virtual-module","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frspack-contrib%2Frsbuild-plugin-virtual-module/lists"}