引用 JSON 文件
EMP 支持在代码中引用 JSON 文件,也支持引用 YAML 和 TOML 文件并将其转换为 JSON 格式。
JSON 文件
你可以直接在 JavaScript 文件中引用 JSON 文件。
demo.json
{
"name": "Youli",
"items": [1, 2],
"objs": {
pass: true
}
}
demo.js
import demo from './demo.json';
console.log(demo.name); // 'Youli';
console.log(demo.items); // [1, 2];
console.log(demo.objs); // {pass: true};
具名引用
EMP 同样支持通过 named import 来引用 JSON 文件:
demo.js
import { name } from './demo.json';
console.log(name); // 'Youli';
YAML 文件
YAML 是一种数据序列化语言,通常用于编写配置文件。
EMP 提供了 YAML 插件,在注册插件后,你可以在 JavaScript 中引用 .yaml 或 .yml 文件,它们会被自动转换为 JavaScript 对象。
demo.yaml
---
hello: world
foo:
bar: lisa
demo.js
import demo from './demo.yaml';
console.log(demo.hello); // 'world';
console.log(demo.foo); // { bar: 'lisa' };
TOML 文件
TOML 是一种语义明显、易于阅读的配置文件格式。
EMP 提供了 TOML 插件,在注册插件后,你可以在 JavaScript 中引用 .toml 文件,它会被自动转换为 JavaScript 对象。
demo.toml
hello = "world"
[foo]
bar = "lisa"
demo.js
import demo from './demo.toml';
console.log(demo.hello); // 'world';
console.log(demo.foo); // { bar: 'lisa' };
类型声明
当你在 TypeScript 代码中引用 YAML 或 TOML 文件时,请在项目中创建 src/env.d.ts
文件,并添加相应的类型声明。
src/env.d.ts
declare module '*.yaml' {
const content: Record<string, any>;
export default content;
}
declare module '*.yml' {
const content: Record<string, any>;
export default content;
}
declare module '*.toml' {
const content: Record<string, any>;
export default content;
}