rsbuild-plugin-virtual-module
TypeScript icon, indicating that this package has built-in type declarations

0.1.1 • Public • Published

rsbuild-plugin-virtual-module

Example plugin for Rsbuild.

npm version license downloads

Usage

Install:

npm add rsbuild-plugin-virtual-module -D

Add plugin to your rsbuild.config.ts:

// rsbuild.config.ts
import { pluginVirtualModule } from 'rsbuild-plugin-virtual-module';

export default {
  plugins: [
    pluginVirtualModule({
      virtualModules: {
        'virtual-foo': async () => {
          return 'export default {}';
        },
      },
    }),
  ],
};
import foo from 'virtual-foo';

console.log(foo); // {}

Options

virtualModules

Generate virtual modules, where the key is the name of the virtual module and the value is TransformHandler. See Rsbuild - api.transform

  • Type:
import type { RsbuildPlugin, TransformHandler } from '@rsbuild/core';

type VirtualModules = Record<string, TransformHandler>;
  • Default: {}
  • Example:
pluginVirtualModule({
  virtualModules: {
    'virtual-json-list': async ({ addDependency, addContextDependency }) => {
      const jsonFolderPath = join(__dirname, 'json');
      const ls = await readdir(jsonFolderPath);
      addContextDependency(jsonFolderPath);

      const res: Record<string, unknown> = {};
      for (const file of ls) {
        if (file.endsWith('.json')) {
          const jsonFilePath = join(jsonFolderPath, file);
          const jsonContent = await readFile(jsonFilePath, 'utf-8');
          addDependency(jsonFilePath);
          res[file] = JSON.parse(jsonContent);
        }
      }

      return `export default ${JSON.stringify(res)}`;
    },
  },
});
import jsonList from 'virtual-json-list';
console.log(jsonList);

License

MIT.

Readme

Keywords

none

Package Sidebar

Install

npm i rsbuild-plugin-virtual-module

Weekly Downloads

139

Version

0.1.1

License

MIT

Unpacked Size

10.2 kB

Total Files

6

Last publish

Collaborators

  • sooniter