# @folder/xdg 中文文档

规范地址：https://npmcn.com/package/%40folder/xdg/

版本：4\.0\.1
npm 元数据更新时间：2023-08-03T03:13:14.113Z
中文译文更新时间：2026-11-15T04:00:00.392Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40folder/xdg
原文对照：https://npmcn.com/package/%40folder/xdg/?lang=original
项目主页：https://github.com/folder/xdg
源码仓库：https://github.com/folder/xdg

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：39.1 kB，6 个文件
- 模块格式：CommonJS
- TypeScript 类型：未声明
- 运行依赖：5 个
- 首次发布：2019-07-03T12:21:49.128Z
- 最新版本发布：2023-08-03T03:13:13.925Z
- 近 30 天下载量：136917（2026-10-15 至 2026-11-13，npm 官方下载统计）
- 已发布版本数：11（近 12 个月 0 个）

## 中文简介

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

## 安装

```sh
npm install @folder/xdg
```

也可以使用：`pnpm add @folder/xdg`、`yarn add @folder/xdg`、`bun add @folder/xdg`

## README

# @ 文件夹/ xdg [![NPM version](https://img.shields.io/npm/v/@folder/xdg.svg?style=flat)](https://www.npmjs.com/package/@folder/xdg) [![NPM monthly downloads](https://img.shields.io/npm/dm/@folder/xdg.svg?style=flat)](https://npmjs.org/package/@folder/xdg) [![NPM total downloads](https://img.shields.io/npm/dt/@folder/xdg.svg?style=flat)](https://npmjs.org/package/@folder/xdg)

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

请考虑跟随这个项目的作者, [乔恩·斯林克特](https://github.com/jonschlinkert),并考虑主演该项目以显示你的:心:和支持.

## 安装

安装方式 [无](https://www.npmjs.com/)数字 :

```sh
$ npm install --save @folder/xdg
```

## 使用量

将以下一行代码添加到您的 [节点.js](https://nodejs.org/) 应用程序 :

```js
const xdg = require('@folder/xdg');
```

主导出是可用选项对象调用的函数 :

```js
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'
```

见 [示例输出](https://npmcn.com/package/%40folder/xdg/#readme-examples) 依据平台.

## 选项

**单击以查看所有可用的选项**  
以下选项可用于自定义行为和/或测试行为.

| 选项 | 类型 | 说明 | 默认值 |
| --- | --- | --- | --- |
| `cachedir` | `string` | 覆盖默认值 `cachedir` | 特定平台,参见 [下级](https://npmcn.com/package/%40folder/xdg/#readme-examples) |
| `configdir` | `string` | 覆盖默认值 `configdir` |  |
| `datadir` | `string` | 覆盖默认值 `datadir` |  |
| `env` | `object` | 这个 `env` 对象用于获取路径. | `process.env` |
| `expanded` | `boolean` | 将路径扩展为对象。 见 [扩展路径](https://npmcn.com/package/%40folder/xdg/#readme-expanded-paths) 例如,详细情况. | 未定义 |
| `homedir` | `string` | 用户主目录. | `os.homedir()` |
| `platform` | `string` | 要使用的平台 : `darwin`, (中文(简体) ), `linux`, (中文(简体) ), `win32` | `process.platform` |
| `resolve` | `function` | 自定义解析每个目录路径的功能 。 默认函数试图在用户已存在的目录中尊重外壳. | 未定义 |
| `runtimedir` | `string` | 覆盖默认值 `runtimedir` |  |
| `subdir` | `string` | 加入路径的子目录, 通常是应用程序的名称 。 在每个平台上,此路径的结合方式不同. 见 [实例](https://npmcn.com/package/%40folder/xdg/#readme-examples)。 。 。 . | `xdg` |
| `tempdir` | `string` | 要使用的临时目录 . | `os.tmpdir()` |

见 [实例](https://npmcn.com/package/%40folder/xdg/#readme-xamples) 见下文.

## 实例

**单击以查看特定平台路径的示例**  
获取特定平台的路径 .  

```js
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' }));
```
**单击以查看没有选项的示例**  
以下例子显示没有通过选项时路径的外观.  

```js
console.log(xdg());
```

### MacOS (达尔文)

```js
{
  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'
}
```

### 链接

```js
{
  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)

```js
{
  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'路径.  

```js
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 (达尔文)

```js
{
  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' }
}
```

### 链接

```js
{
  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)

```js
{
  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 基本目录](https://npmcn.com/package/%40folder/xdg/#readme-xdg-base-directory) 关于每个财产的设置的更详细情况,请在下面提供文件:

-   `cache`
-   `config`
-   `configdirs`
-   `data`
-   `datadirs`
-   `runtime`

## 主导出

### [页:1](https://npmcn.com/package/%40folder/xdg/index.js#L17)

获取 Linux 的 XDG 基础目录路径,或者Windows 或 MaxOS 的等同路径.

**参数**

-   `options` **{对象}**
-   `returns` **{对象}**: 返回当前平台的路径对象.

### [.达文](https://npmcn.com/package/%40folder/xdg/index.js#L42)

为 MacOS 获取 XDG 等同路径 。 主导出时使用 `process.platform` 实值 `darwin`替换为 `xdg.macos()`。 。 。 .

**参数**

-   `options` **{对象}**
-   `returns` **{对象}**: 返回路径对象.

**示例**

```js
const dirs = xdg.darwin();
// or
const dirs = xdg.macos();
```

### [.linux (英语)](https://npmcn.com/package/%40folder/xdg/index.js#L93)

为 Linux 获取 XDG 等同路径 。 主导出时使用 `process.platform` 实值 `linux`。 。 。 .

-   `returns` **{对象}**: 返回路径对象.
-   `returns` **{对象}**: 返回路径对象.

**示例**

```js
const dirs = xdg.linux();
```

### [.win32 (韩语)](https://npmcn.com/package/%40folder/xdg/index.js#L145)

为 MacOS 获取 XDG 等同路径 。 主导出时使用 `process.platform` 实值 `win32`替换为 `xdg.windows()`。 。 。 .

**参数**

-   `options` **{对象}**
-   `returns` **{对象}**: 返回路径对象.

**示例**

```js
const dirs = xdg.win32();
// or
const dirs = xdg.windows();
```

## XDG 基本目录

此文档来自 Arch Linux [XDG 基础目录](https://wiki.archlinux.org/index.php/XDG_Base_Directory) 医生.

### 用户目录

-   `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`。 。 。 .

## 关于

**捐款**

拉出请求和星星总是受欢迎的. 对于错误和特性请求, [请创建一个问题](https://npmcn.com/package/issues/new)。 。 。 .

**运行测试**

运行和审查单元测试是熟悉图书馆及其API的好办法。 您可以使用以下命令安装依赖性并运行测试:

```sh
$ npm install && npm test
```
**大楼文件**

_(此工程的 readme.md 由 [动词](https://github.com/verbose/verb-generate-readme)请不要直接编辑读取器。 读取器的任何改动必须在 [动词 md](https://npmcn.com/package/%40folder/xdg/.verb.md) 读取我的模板。 )_

要生成读取, 请运行以下命令 :

```sh
$ npm install -g verbose/verb#dev verb-generate-readme && verb
```

### 相关项目

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

-   [扩展至](https://www.npmjs.com/package/expand-tilde): Bash-like tilde扩展为节点.js. 在文件路径中向.. [更多](https://github.com/jonschlinkert/expand-tilde) | [主页](https://github.com/jonschlinkert/expand-tilde "Bash-like tilde expansion for node.js. Expands a leading tilde in a file path to the user home directory, or `~+` to the cwd.")
-   [全局模块](https://www.npmjs.com/package/global-modules): npm用于全球安装的 npm 模块的目录. | [主页](https://github.com/jonschlinkert/global-modules "The directory used by npm for globally installed npm modules.")
-   [全球路径](https://www.npmjs.com/package/global-paths):根据用户的平台和环境返回一系列独特的"全球"目录. 那个.. [更多](https://github.com/jonschlinkert/global-paths) \[主页\] (中文(简体) )[https://github.com/jonschlinkert/global-paths (中文(简体) )](https://github.com/jonschlinkert/global-paths) "返回基于用户平台和环境的一连串独特的"全球"目录. 由此产生的路径可用于对发电机或其他全球安装的npm包进行搜索. 节点.js / JavaScript". )
-   [正常路径](https://www.npmjs.com/package/normalize-path): 将文件路径中的鞭打规范化为posix/unix等前鞭. 还会不断收缩.. [更多](https://github.com/jonschlinkert/normalize-path) | [主页](https://github.com/jonschlinkert/normalize-path "Normalize slashes in a file path to be posix/unix-like forward slashes. Also condenses repeat slashes to a single slash and removes and trailing slashes, unless disabled.")

### 作者

**乔恩·斯林克特**

-   [GitHub 配置文件](https://github.com/jonschlinkert)
-   [推特简介](https://twitter.com/jonschlinkert)
-   [链接到配置文件](https://linkedin.com/in/jonschlinkert)

### 许可证

版权 2023, [乔恩·斯林克特](https://github.com/jonschlinkert)。 。 。 . 根据麻省理工学院的许可获释.

* * *

_此文件由 [动词基因读取器](https://github.com/verbose/verb-generate-readme),v0.8.0,于2023年7月24日发布._

## 常见问题

### @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 和提交记录判断。

