@ 文件夹/ xdg

获得跨平台的XDG Base Directories或等同功能. 与Linux,Windows(win32),或MacOS(darwin)合作.
请考虑跟随这个项目的作者, 乔恩·斯林克特,并考虑主演该项目以显示你的:心:和支持.
安装
安装方式 无数字 :
$ npm install --save @folder/xdg
使用量
将以下一行代码添加到您的 节点.js 应用程序 :
const xdg = require('@folder/xdg');
主导出是可用选项对象调用的函数 :
const dirs = xdg(/* options */);
console.log(dirs);
/* This output is on MacOS, see examples for Linux and Windows below */
console.log(dirs.config); // => '/Users/jonschlinkert/Library/Preferences'
console.log(dirs.cache); // => '/Users/jonschlinkert/Library/Caches'
console.log(dirs.data); // => '/Users/jonschlinkert/Library/Application Support'
见 示例输出 依据平台.
选项
单击以查看所有可用的选项
以下选项可用于自定义行为和/或测试行为.
| 选项 | 类型 | 说明 | 默认值 |
|---|---|---|---|
cachedir | string | 覆盖默认值 cachedir | 特定平台,参见 下级 |
configdir | string | 覆盖默认值 configdir | |
datadir | string | 覆盖默认值 datadir | |
env | object | 这个 env 对象用于获取路径. | process.env |
expanded | boolean | 将路径扩展为对象。 见 扩展路径 例如,详细情况. | 未定义 |
homedir | string | 用户主目录. | os.homedir() |
platform | string | 要使用的平台 : darwin, (中文(简体) ), linux, (中文(简体) ), win32 | process.platform |
resolve | function | 自定义解析每个目录路径的功能 。 默认函数试图在用户已存在的目录中尊重外壳. | 未定义 |
runtimedir | string | 覆盖默认值 runtimedir | |
subdir | string | 加入路径的子目录, 通常是应用程序的名称 。 在每个平台上,此路径的结合方式不同. 见 实例。 。 。 . | xdg |
tempdir | string | 要使用的临时目录 . | os.tmpdir() |
见 实例 见下文.
实例
单击以查看特定平台路径的示例
获取特定平台的路径 .
console.log(xdg.darwin());
console.log(xdg.linux());
console.log(xdg.win32());
// or, if you want "expanded" paths (see the "expanded paths" example)
console.log(xdg({ expanded: true, platform: 'darwin' }));
console.log(xdg({ expanded: true, platform: 'linux' }));
console.log(xdg({ expanded: true, platform: 'win32' }));
单击以查看没有选项的示例
以下例子显示没有通过选项时路径的外观.
console.log(xdg());
MacOS (达尔文)
{
cache: '/Users/jonschlinkert/Library/Caches/xdg',
config: '/Users/jonschlinkert/Library/Preferences/xdg',
configdirs: [ '/Users/jonschlinkert/Library/Preferences/xdg', '/etc/xdg' ],
data: '/Users/jonschlinkert/Library/Application Support/xdg',
datadirs: [
'/Users/jonschlinkert/Library/Application Support/xdg',
'/usr/local/share/',
'/usr/share/'
],
runtime: '/var/folders/vd/53h736bj0_sg9gk04c89k0pr0000gq/T/xdg'
}
链接
{
cache: '/Users/jonschlinkert/.cache/xdg',
config: '/Users/jonschlinkert/.config/xdg',
configdirs: [ '/Users/jonschlinkert/.config/xdg', '/etc/xdg' ],
data: '/Users/jonschlinkert/.local/share/xdg',
datadirs: [
'/Users/jonschlinkert/.local/share/xdg',
'/usr/local/share/',
'/usr/share/'
],
runtime: '/var/folders/vd/53h736bj0_sg9gk04c89k0pr0000gq/T/xdg'
}
视窗 (win32)
{
cache: '/Users/jonschlinkert/AppData/Local/xdg/Cache',
config: '/Users/jonschlinkert/AppData/Roaming/xdg/Config',
configdirs: [ '/Users/jonschlinkert/AppData/Roaming/xdg/Config' ],
data: '/Users/jonschlinkert/AppData/Local/xdg/Data',
datadirs: [ '/Users/jonschlinkert/AppData/Local/xdg/Data' ],
runtime: '/var/folders/vd/53h736bj0_sg9gk04c89k0pr0000gq/T/xdg'
}
点击可查看“ 扩展” 路径示例
运行以下示例返回带有“ 扩展” 路径的对象, 将“ 配置” 和“ 配置dirs” 转换为“ config. home” 和“ config. dirs” 等 。 此外,为了方便起见,增加了`cwd'、`home'和`temp'路径.
console.log(xdg({ expanded: true, subdir: 'FooBar' }));
额外目录
注意 expanded 对象包括四个额外的路径属性以方便:
cwd- 设置通过options.cwd或者说process.cwd()home- 设置通过options.homedir或者说os.homedir()temp- 设置通过options.tempdir或者说os.tmpdir()cache.logs- 设定为path.join(cachedir, 'logs')
MacOS (达尔文)
{
cwd: '/Users/jonschlinkert/dev/@folder/xdg',
home: '/Users/jonschlinkert',
temp: '/var/folders/vd/53h736bj0_sg9gk04c89k0pr0000gq/T',
cache: {
home: '/Users/jonschlinkert/Library/Caches/FooBar',
logs: '/Users/jonschlinkert/Library/Caches/FooBar/Logs'
},
config: {
home: '/Users/jonschlinkert/Library/Preferences/FooBar',
dirs: [ '/Users/jonschlinkert/Library/Preferences/FooBar', '/etc/FooBar' ]
},
data: {
home: '/Users/jonschlinkert/Library/Application Support/FooBar',
dirs: [
'/Users/jonschlinkert/Library/Application Support/FooBar',
'/usr/local/share/',
'/usr/share/'
]
},
runtime: { home: '/var/folders/vd/53h736bj0_sg9gk04c89k0pr0000gq/T/FooBar' }
}
链接
{
cwd: '/Users/jonschlinkert/dev/@folder/xdg',
home: '/Users/jonschlinkert',
temp: '/var/folders/vd/53h736bj0_sg9gk04c89k0pr0000gq/T',
cache: {
home: '/Users/jonschlinkert/.cache/FooBar',
logs: '/Users/jonschlinkert/.cache/FooBar/Logs'
},
config: {
home: '/Users/jonschlinkert/.config/FooBar',
dirs: [ '/Users/jonschlinkert/.config/FooBar', '/etc/FooBar' ]
},
data: {
home: '/Users/jonschlinkert/.local/share/FooBar',
dirs: [
'/Users/jonschlinkert/.local/share/FooBar',
'/usr/local/share/',
'/usr/share/'
]
},
runtime: { home: '/var/folders/vd/53h736bj0_sg9gk04c89k0pr0000gq/T/FooBar' }
}
视窗 (win32)
{
cwd: '/Users/jonschlinkert/dev/@folder/xdg',
home: '/Users/jonschlinkert',
temp: '/var/folders/vd/53h736bj0_sg9gk04c89k0pr0000gq/T',
cache: {
home: '/Users/jonschlinkert/AppData/Local/FooBar/Cache',
logs: '/Users/jonschlinkert/AppData/Local/FooBar/Cache/Logs'
},
config: {
home: '/Users/jonschlinkert/AppData/Roaming/FooBar/Config',
dirs: [ '/Users/jonschlinkert/AppData/Roaming/FooBar/Config' ]
},
data: {
home: '/Users/jonschlinkert/AppData/Local/FooBar/Data',
dirs: [ '/Users/jonschlinkert/AppData/Local/FooBar/Data' ]
},
runtime: { home: '/var/folders/vd/53h736bj0_sg9gk04c89k0pr0000gq/T/FooBar' }
}
API 密码
除了主要出口, xdg(),一些针对特定平台的方法被曝光来简化特定平台的获取路径. 注意,通过将选项的平台传递到主导出,例如,可以完成同样的任务. { platform: 'linux' }。 。 。 .
主导出和每种方法都返回具有以下属性的对象(见 XDG 基本目录 关于每个财产的设置的更详细情况,请在下面提供文件:
cacheconfigconfigdirsdatadatadirsruntime
主导出
页:1
获取 Linux 的 XDG 基础目录路径,或者Windows 或 MaxOS 的等同路径.
参数
options{对象}returns{对象}: 返回当前平台的路径对象.
.达文
为 MacOS 获取 XDG 等同路径 。 主导出时使用 process.platform 实值 darwin替换为 xdg.macos()。 。 。 .
参数
options{对象}returns{对象}: 返回路径对象.
示例
const dirs = xdg.darwin();
// or
const dirs = xdg.macos();
.linux (英语)
为 Linux 获取 XDG 等同路径 。 主导出时使用 process.platform 实值 linux。 。 。 .
returns{对象}: 返回路径对象.returns{对象}: 返回路径对象.
示例
const dirs = xdg.linux();
.win32 (韩语)
为 MacOS 获取 XDG 等同路径 。 主导出时使用 process.platform 实值 win32替换为 xdg.windows()。 。 。 .
参数
options{对象}returns{对象}: 返回路径对象.
示例
const dirs = xdg.win32();
// or
const dirs = xdg.windows();
XDG 基本目录
此文档来自 Arch Linux XDG 基础目录 医生.
用户目录
-
XDG_CONFIG_HOME- 用户特定配置应当写入的地方(类似:
/etc) (中文(简体) ). - 默认为
$HOME/.config。 。 。 .
- 用户特定配置应当写入的地方(类似:
-
XDG_CACHE_HOME- 如果用户特有的非基本(附着)数据应当写入(类似于
/var/cache) (中文(简体) ). - 默认为
$HOME/.cache。 。 。 .
- 如果用户特有的非基本(附着)数据应当写入(类似于
-
XDG_DATA_HOME- 编写用户特定数据文件的地方(类似于
/usr/share) (中文(简体) ). - 默认为
$HOME/.local/share。 。 。 .
- 编写用户特定数据文件的地方(类似于
-
XDG_RUNTIME_DIR- 用于非必要的,用户特有的数据文件,如套接字,命名管等.
- 不要求有默认值;没有设定或提供等同值的,应当发出警告.
- 必须由用户拥有,使用模式为:
0700。 。 。 . - Filesystem完全以OS的标准为主.
- 必须在本地文件系统中 .
- 可能要定期进行清理.
- 如果需要持久性,每6小时修改一次或设置粘接点.
- 只能存在于用户登录期间.
- 不应存储大文件, 因为它可能作为 tmpfs 挂载 .
系统目录
-
XDG_DATA_DIRS- 目录列表
:(类似:PATH) (中文(简体) ). - 默认为
/usr/local/share:/usr/share。 。 。 .
- 目录列表
-
XDG_CONFIG_DIRS- 目录列表
:(类似:PATH) (中文(简体) ). - 默认为
/etc/xdg。 。 。 .
- 目录列表
关于
捐款
拉出请求和星星总是受欢迎的. 对于错误和特性请求, 请创建一个问题。 。 。 .
运行测试
运行和审查单元测试是熟悉图书馆及其API的好办法。 您可以使用以下命令安装依赖性并运行测试:
$ npm install && npm test
大楼文件
(此工程的 readme.md 由 动词请不要直接编辑读取器。 读取器的任何改动必须在 动词 md 读取我的模板。 )
要生成读取, 请运行以下命令 :
$ npm install -g verbose/verb#dev verb-generate-readme && verb
相关项目
您可能也对这些项目感兴趣:
- 扩展至: Bash-like tilde扩展为节点.js. 在文件路径中向.. 更多 | 主页
- 全局模块: npm用于全球安装的 npm 模块的目录. | 主页
- 全球路径:根据用户的平台和环境返回一系列独特的"全球"目录. 那个.. 更多 [主页] (中文(简体) )https://github.com/jonschlinkert/global-paths (中文(简体) ) "返回基于用户平台和环境的一连串独特的"全球"目录. 由此产生的路径可用于对发电机或其他全球安装的npm包进行搜索. 节点.js / JavaScript". )
- 正常路径: 将文件路径中的鞭打规范化为posix/unix等前鞭. 还会不断收缩.. 更多 | 主页
作者
乔恩·斯林克特
许可证
版权 2023, 乔恩·斯林克特。 。 。 . 根据麻省理工学院的许可获释.
此文件由 动词基因读取器,v0.8.0,于2023年7月24日发布.