利尔克西克
零依赖性替代方案 宇宙图 同一个API.
安装
npm install lilconfig
使用量
import {lilconfig, lilconfigSync} from 'lilconfig';
// all keys are optional
const options = {
stopDir: '/Users/you/some/dir',
searchPlaces: ['package.json', 'myapp.conf.js'],
ignoreEmptySearchPlaces: false
}
lilconfig(
'myapp',
options // optional
).search() // Promise<LilconfigResult>
lilconfigSync(
'myapp',
options // optional
).load(pathToConfig) // LilconfigResult
/**
* LilconfigResult
* {
* config: any; // your config
* filepath: string;
* }
*/
无害环境管理
无害环境管理配置可以装入 仅作为 API具体而言 js 在项目中的文件 "type": "module" 内 package.json 或者说 mjs 文档.
与 cosmiconfig
Lilconfig 无意100%兼容 cosmiconfig 但尽可能模仿一下 关键区别在于 没有 框外的 YAML 文件支持( E)lilconfig 试图将文件解析为 JSON 而非 YAML 。 您仍可以通过提供加载器来添加对 YAML 文件的支持, 请查看 实例 见下文.
二者可选差别.
| 宇宙图选项 | 用户配置 |
|---|---|
| 缓存 | ✅ |
| 装载器 | ✅ |
| 忽略 EmptySearch 标签 | ✅ |
| 软件包配置 | ✅ |
| 搜索位置 | ✅ |
| 停止定义 | ✅ |
| 转换 | ✅ |
装入器示例
Yaml 装载器
如果您需要 YAML 支持, 您可以提供自己的加载器
import {lilconfig} from 'lilconfig';
import yaml from 'yaml';
function loadYaml(filepath, content) {
return yaml.parse(content);
}
const options = {
loaders: {
'.yaml': loadYaml,
'.yml': loadYaml,
// loader for files with no extension
noExt: loadYaml
}
};
lilconfig('myapp', options)
.search()
.then(result => {
result // {config, filepath}
});
版本关联性
- lilconfig v1 → 宇宙相克 v6
- iilconfig v2 – 宇宙相克 v7
- lilconfig v3 → 宇宙onfig v8 (英语)