引用 JSON 文件

Rsbuild 支持在代码中引用 JSON 文件,也支持引用 YAMLTOML 文件并将其转换为 JSON 格式。

JSON 文件

你可以直接在 JavaScript 文件中引用 JSON 文件。

示例

example.json

  1. {
  2. "name": "foo",
  3. "items": [1, 2]
  4. }

index.js

  1. import example from './example.json';
  2. console.log(example.name); // 'foo';
  3. console.log(example.items); // [1, 2];

具名引用

Rsbuild 同样支持通过 named import 来引用 JSON 文件:

  1. import { name } from './example.json';
  2. console.log(name); // 'foo';

YAML 文件

YAML 是一种数据序列化语言,通常用于编写配置文件。

Rsbuild 提供了 @rsbuild/plugin-yaml,在注册插件后,你可以在 JavaScript 中引用 .yaml.yml 文件,它们会被自动转换为 JavaScript 对象。

rsbuild.config.ts

  1. import { pluginYaml } from '@rsbuild/plugin-yaml';
  2. export default {
  3. plugins: [pluginYaml()],
  4. };

示例

example.yaml

  1. ---
  2. hello: world
  3. foo:
  4. bar: baz
  1. import example from './example.yaml';
  2. console.log(example.hello); // 'world';
  3. console.log(example.foo); // { bar: 'baz' };

TOML 文件

TOML 是一种语义明显、易于阅读的配置文件格式。

Rsbuild 提供了 @rsbuild/plugin-toml,在注册插件后,你可以在 JavaScript 中引用 .toml 文件,它会被自动转换为 JavaScript 对象。

rsbuild.config.ts

  1. import { pluginToml } from '@rsbuild/plugin-toml';
  2. export default {
  3. plugins: [pluginToml()],
  4. };

示例

example.toml

  1. hello = "world"
  2. [foo]
  3. bar = "baz"
  1. import example from './example.toml';
  2. console.log(example.hello); // 'world';
  3. console.log(example.foo); // { bar: 'baz' };

类型声明

当你在 TypeScript 代码中引用 YAML 或 TOML 文件时,请在项目中创建 src/env.d.ts 文件,并添加相应的类型声明。

  • 方法一:如果项目里安装了 @rsbuild/core 包,你可以直接引用 @rsbuild/core 提供的 预设类型

src/env.d.ts

  1. /// <reference types="@rsbuild/core/types" />
  • 方法二:手动添加需要的类型声明:

src/env.d.ts

  1. declare module '*.yaml' {
  2. const content: Record<string, any>;
  3. export default content;
  4. }
  5. declare module '*.yml' {
  6. const content: Record<string, any>;
  7. export default content;
  8. }
  9. declare module '*.toml' {
  10. const content: Record<string, any>;
  11. export default content;
  12. }