@folder/xdg

中文文档
4.0.1发布于 2023/08/03MITCommonJS近 30 天下载 13.7万

获得跨平台的XDG Base Directories或等同功能. 与Linux,Windows(win32),或MacOS(darwin)合作.

中文使用文档
文档目录22 节
  1. 安装
  2. 使用量
  3. 选项
  4. 实例
  5. MacOS (达尔文)
  6. 链接
  7. 视窗 (win32)
  8. MacOS (达尔文)
  9. 链接
  10. 视窗 (win32)
  11. 主导出
  12. 页:1
  13. .达文
  14. .linux (英语)
  15. .win32 (韩语)
  16. XDG 基本目录
  17. 用户目录
  18. 系统目录
  19. 关于
  20. 相关项目
  21. 作者
  22. 许可证

@ 文件夹/ xdg NPM version NPM monthly downloads NPM total downloads

获得跨平台的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'

见 示例输出 依据平台.

选项

单击以查看所有可用的选项
以下选项可用于自定义行为和/或测试行为.
选项类型说明默认值
cachedirstring覆盖默认值 cachedir特定平台,参见 下级
configdirstring覆盖默认值 configdir
datadirstring覆盖默认值 datadir
envobject这个 env 对象用于获取路径.process.env
expandedboolean将路径扩展为对象。 见 扩展路径 例如,详细情况.未定义
homedirstring用户主目录.os.homedir()
platformstring要使用的平台 : darwin, (中文(简体) ), linux, (中文(简体) ), win32process.platform
resolvefunction自定义解析每个目录路径的功能 。 默认函数试图在用户已存在的目录中尊重外壳.未定义
runtimedirstring覆盖默认值 runtimedir
subdirstring加入路径的子目录, 通常是应用程序的名称 。 在每个平台上,此路径的结合方式不同. 见 实例。 。 。 .xdg
tempdirstring要使用的临时目录 .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 基本目录 关于每个财产的设置的更详细情况,请在下面提供文件:

  • cache
  • config
  • configdirs
  • data
  • datadirs
  • runtime

主导出

页: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

您可能也对这些项目感兴趣:

作者

乔恩·斯林克特

许可证

版权 2023, 乔恩·斯林克特。 。 。 . 根据麻省理工学院的许可获释.


此文件由 动词基因读取器,v0.8.0,于2023年7月24日发布.

版本与发布记录

@folder/xdg 共发布 11 个版本,首次发布于 2019/07/03;过去 12 个月发布了 0 个版本。

版本发布日期距今
4.0.1latest2023/08/033 年前
4.0.02023/07/253 年前
3.1.22020/07/156 年前
3.1.12020/07/156 年前
3.1.02020/07/146 年前
3.0.02020/07/146 年前

关于 @folder/xdg 的常见问题

@folder/xdg 是什么?

获得跨平台的XDG Base Directories或等同功能. 与Linux,Windows(win32),或MacOS(darwin)合作.

如何安装 @folder/xdg?

在项目目录运行 npm install @folder/xdg,或使用 pnpm add / yarn add / bun add。

@folder/xdg 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/folder__xdg 是否存在。

@folder/xdg 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@folder/xdg 可以商用吗?

@folder/xdg 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@folder/xdg 的下载量有多少?

根据 npm 官方下载统计,@folder/xdg 在 2026/10/15 – 2026/11/13 这 30 天内被下载 136,917 次,日均约 4,564 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@folder/xdg 还在维护吗?

最新版本 4.0.1 发布于 2023/08/03(3 年前);至今共发布 11 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/07/03。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。