# @ember-template-lint/todo-utils 中文文档

规范地址：https://npmcn.com/package/%40ember-template-lint/todo-utils/

版本：11\.0\.0
npm 元数据更新时间：2026-10-09T02:59:33.453Z
中文译文更新时间：2026-11-13T14:54:31.200Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/%40ember-template-lint/todo-utils
原文对照：https://npmcn.com/package/%40ember-template-lint/todo-utils/?lang=original
项目主页：https://github.com/ember-template-lint/ember-template-lint-todo-utils#readme
源码仓库：https://github.com/ember-template-lint/ember-template-lint-todo-utils

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

- 包体积（解压后）：124 kB，48 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：12\.\* \|\| \>= 14
- 运行依赖：5 个
- 首次发布：2020-10-15T22:14:23.583Z
- 最新版本发布：2021-12-03T03:47:07.829Z
- 近 30 天下载量：63172（2026-10-14 至 2026-11-12，npm 官方下载统计）
- 已发布版本数：37（近 12 个月 0 个）

## 中文简介

![CI Build](https://github.com/ember-template-lint/ember-template-lint-todo-utils/workflows/CI%20Build/badge.svg) \[![npm version](https://badge.fury.io/js/%40ember-template-lint%2Ftodo-utils.svg)\[(\][https://badge.fury.io/js/%40ember-template-lint%2 Ftodo-uti 互联网档案馆的存檔,存档日期2013-12-20](https://badge.fury.io/js/%40ember-template-lint%2Ftodo-uti)

## 安装

```sh
npm install @ember-template-lint/todo-utils
```

也可以使用：`pnpm add @ember-template-lint/todo-utils`、`yarn add @ember-template-lint/todo-utils`、`bun add @ember-template-lint/todo-utils`

## README

# @ember-template-lint/todo-utils

![CI Build](https://github.com/ember-template-lint/ember-template-lint-todo-utils/workflows/CI%20Build/badge.svg) [![npm version](https://badge.fury.io/js/%40ember-template-lint%2Ftodo-utils.svg)](https://badge.fury.io/js/%40ember-template-lint%2Ftodo-utils) [![License](https://img.shields.io/npm/l/@checkup/cli.svg)](https://github.com/checkupjs/checkup/blob/master/package.json) ![Dependabot](https://badgen.net/badge/icon/dependabot?icon=dependabot&label) ![Volta Managed](https://img.shields.io/static/v1?label=volta&message=managed&color=yellow&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QAeQC6AMEpK7AhAAAACXBIWXMAAAsSAAALEgHS3X78AAAAB3RJTUUH5AMGFS07qAYEaAAAABl0RVh0Q29tbWVudABDcmVhdGVkIHdpdGggR0lNUFeBDhcAAAFmSURBVDjLY2CgB/g/j0H5/2wGW2xyTAQ1r2DQYOBgm8nwh+EY6TYvZtD7f9rn5e81fAGka17GYPL/esObP+dyj5Cs+edqZsv/V8o//H+z7P+XHarW+NSyoAv8WsFszyKTtoVBM5Tn7/Xys+zf7v76vYrJlPEvAwPjH0YGxp//3jGl/L8LU8+IrPnPUkY3ZomoDQwOpZwMv14zMHy8yMDwh4mB4Q8jA8OTgwz/L299wMDyx4Mp9f9NDAP+bWVwY3jGsJpB3JaDQVCEgYHlLwPDfwYWRqVQJgZmHoZ/+3PPfWP+68Mb/Pw5sqUoLni9ipuRnekrAwMjA8Ofb6K8/PKBF5nU7RX+Hize8Y2DOZTP7+kXogPy1zrH+f/vT/j/Z5nUvGcr5VhJioUf88UC/59L+/97gUgDyVH4YzqXxL8dOs/+zuFLJivd/53HseLPPHZPsjT/nsHi93cqozHZue7rLDYhUvUAADjCgneouzo/AAAAAElFTkSuQmCC&link=https://volta.sh) ![TypeScript](https://badgen.net/badge/icon/typescript?icon=typescript&label) [![Code Style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-badge)

收集各种公用事业,以生成和储存物品元数据.

这些公用事业是:

## 职能

[构建 TodoDatum(lintResult, lintMessage, todoConfig) 选项](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-buildTodoDatum) ⇒

适应 a [林特结果](https://github.com/ember-template-lint/ember-template-lint-todo-utils/blob/master/src/types/lint.ts#L31) 改为 [待办文件](https://github.com/ember-template-lint/ember-template-lint-todo-utils/blob/master/src/types/todo.ts#L61)文件页是绝对的 所以它们被转换成相对的路径 以获得稳定 将内容序列化为磁盘 .

[待办的StorageFileExists( baseDir) 函数](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-todoStorageFileExists) ⇒

确定.lint-todo存储文件是否存在.

[保证 TodoStorageFile( 碱基)](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-ensureTodoStorageFile) ⇒

创建或确保创建.lint-todo文件.

[获取 TodoStorageFilePath( baseDir)](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-getTodoStorageFilePath) ⇒

[有冲突( 待办事宜)](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-hasConflicts) ⇒

确定.lint-todo存储文件是否有冲突 .

[解决冲突(行动)](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-resolveConflicts) ⇒

通过去掉任何匹配冲突标记的行来解决待办事宜中的 git 冲突.

[已读取 TodoStorageFile( 已读取 StorageFilePath )](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-readTodoStorageFile) ⇒

读取.lint-todo存储文件.

[写入 TodoStorageFile( 用于 doStorageFilePath, 操作)](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-writeTodoStorageFile)

将操作写入.lint-todo存储文件到todoStorageFilePath提供的路径.

[写入 Todos( baseDir, 也许 Todos, 选项)](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-writeTodos) ⇒

为待办事宜写入文件 。 使用生成的文件生成一个文件 散列以识别每个.

鉴于一个待办事项列表, 此功能也将删除已不存在的文件 还要做点什么.

[已读取 Todos( baseDir, shouldLock)](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-readTodos) ⇒

在.lint-todo目录中读取所有待办文件.

[已读取 TodosForFilePath (todoStorageDir, filePath, shouldLock)](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-readTodosForFilePath) ⇒

在.lint-todo目录中读取特定文件Path的待办文件.

[已读取 TodoData( baseDir)](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-readTodoData) ⇒

读取.lint-todo目录中的待办文件并返回数组中的待办文件.

[获取todo Batches( 可能是todos, 已有, 选项)](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-getTodoBatches) ⇒

获得包含待办事宜项目的4个地图来添加,去除,过期的,或稳定(不修改)的.

[应用 Todo Changes( baseDir, 添加、 删除、 shouldLock)](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-applyTodoChanges)

应用基于批次的添加或去除的待办事宜更改 `getTodoBatches`。 。 。 .

[ADD 操作 ONLY(操作)](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-ADD_OPERATIONS_ONLY) ⇒

压缩策略只可在待办事宜存储文件中添加操作 .

[EXCLUDE EXPERED( 操作)](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-EXCLUDE_EXPIRED) ⇒

从待办事宜存储文件中删除所有已过期操作的压缩策略 .

[contract TodoStorageFile( BaseDir, ContractStrategy) (压缩战略)](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-compactTodoStorageFile) ⇒

根据紧凑策略压缩.lint-todo存储文件.

[获取 TodoConfig( baseDir, 引擎, 自定义 Days ToDecay)](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-getTodoConfig) ⇒

获得待办事宜配置. 配置值可以在

包裹。 。

[验证 Config( baseDir)](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-validateConfig) ⇒

验证我们是否在一个地点有一个独特的配置 .

[获取Severity( 今天要做)](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-getSeverity) ⇒

根据待办事宜数据的衰减日期返回正确的重度级别.

[已过期( 日期, 今天)](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-isExpired) ⇒

评估日期是否过期( 比今天提前)

[获取数据部分( 日期)](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-getDatePart) ⇒

将日期转换为仅包含年份、月份和天数值(时间为零).

[inDays( 开始日期, 结束日期)](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-differenceInDays) ⇒

返回两个日期之间的天数相差.

[格式(日期)](https://npmcn.com/package/%40ember-template-lint/todo-utils/#readme-format) ⇒

以短格式格式格式格式化日期, 例如 2021-01-01

## 构建 TodoDatum(lintResult, lintMessage, todoConfig) QQ

适应 a [林特结果](https://github.com/ember-template-lint/ember-template-lint-todo-utils/blob/master/src/types/lint.ts#L31) 改为 [待办文件](https://github.com/ember-template-lint/ember-template-lint-todo-utils/blob/master/src/types/todo.ts#L61)文件页是绝对的 所以它们被转换成相对的路径 以获得稳定 将内容序列化为磁盘 .

**仁爱**:全球职能  
**回返**\- A级 [待办文件](https://github.com/ember-template-lint/ember-template-lint-todo-utils/blob/master/src/types/todo.ts#L61) 对象.

| 参数 | 说明 |
| --- | --- |
| 连结 | 林特结果对象 . |
| 提示 | 对文件表示特定违规的提示信件对象 . |
| 待办配置 | 含有警告或错误日的对象,以整数为单位. |

## 要完成的StorageFileExists( baseDir) QQ

确定.lint-todo存储文件是否存在.

**仁爱**:全球职能  
**回返**: - 如果待办事宜存储文件存在, 则为真, 否则为假 .

| 参数 | 说明 |
| --- | --- |
| 碱性 | 包含.lint-todo存储文件的基础目录 . |

## 保证 TodoStorageFile( baseDir) QQ

创建或确保创建.lint-todo文件.

**仁爱**:全球职能  
**回返**: - 待办事宜存储文件路径.

| 参数 | 说明 |
| --- | --- |
| 碱性 | 包含.lint-todo存储文件的基础目录 . |

## 获取 TodoStorageFilePath( baseDir) QQ

**仁爱**:全球职能  
**回返**: - 待办事宜存储文件路径.

| 参数 | 说明 |
| --- | --- |
| 碱性 | 包含.lint-todo存储文件的基础目录 . |

## 有冲突(待处理事项)

确定.lint-todo存储文件是否有冲突 .

**仁爱**:全球职能  
**回返**: 如果文件有冲突, 则为真, 否则为假 .

| 参数 | 说明 |
| --- | --- |
| 待办事宜 | .lint-todo文件的未解析内容 . |

## 解决冲突(行动)

通过去掉任何匹配冲突标记的行来解决待办事宜中的 git 冲突.

**仁爱**:全球职能  
**回返**:一系列字符串操作,不包括任何被确定为git冲突线的操作.

| 参数 | 说明 |
| --- | --- |
| 业务 | 用于再创建 todos的字符串操作阵列. |

## 已读取 TodoStorageFile( 已读取 StorageFilePath) @%

读取.lint-todo存储文件.

**仁爱**:全球职能  
**回返**: 一系列待办事宜操作.

| 参数 | 说明 |
| --- | --- |
| 待办文件 | .lint-todo 存储文件路径 . |

## 写入 TodoStorageFile( 用于 doStorageFilePath, 操作)

将操作写入.lint-todo存储文件到todoStorageFilePath提供的路径.

**仁爱**:全球职能

| 参数 | 说明 |
| --- | --- |
| 待办文件 | .lint-todo 存储文件路径 . |
| 业务 | 用于再创建 todos的字符串操作阵列. |

## 写入 Todos( baseDir, 也许 Todos, 选项) QQ

为待办事宜写入文件 。 使用生成的文件生成一个文件 散列以识别每个.

鉴于一个待办事项列表, 此功能也将删除已不存在的文件 还要做点什么.

**仁爱**:全球职能  
**回返**: - 添加和去除的待办事宜的计数.

| 参数 | 说明 |
| --- | --- |
| 碱性 | 包含.lint-todo存储目录的基础目录. |
| 也许托多斯 | Linting数据,被转换为todoData格式. |
| 选项 | 包含写入选项的对象 . |

## 已读取 Todos( baseDir, shouldLock) QQ

在.lint-todo目录中读取所有待办文件.

**仁爱**:全球职能  
**回返**\- A级 [地图](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) 联 合 国 [文件路径](https://github.com/ember-template-lint/ember-template-lint-todo-utils/blob/master/src/types/todo.ts#L25)编号 :[托多马彻](https://github.com/ember-template-lint/ember-template-lint-todo-utils/blob/master/src/todo-matcher.ts#L4)。 。 。 .

| 参数 | 默认 | 说明 |
| --- | --- | --- |
| 碱性 |  | 包含.lint-todo存储目录的基础目录. |
| 应锁 | `true` | 如果 .lint- todo 存储文件应该被锁定, 否则是虚假的 。 默认: 真. |

## 已读取 TodosForFilePath (todoStorageDir, filePath, shouldLock) QQ

在.lint-todo目录中读取特定文件Path的待办文件.

**仁爱**:全球职能  
**回返**\- A级 [地图](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map) 联 合 国 [文件路径](https://github.com/ember-template-lint/ember-template-lint-todo-utils/blob/master/src/types/todo.ts#L25)编号 :[托多马彻](https://github.com/ember-template-lint/ember-template-lint-todo-utils/blob/master/src/todo-matcher.ts#L4)。 。 。 .

| 参数 | 说明 |
| --- | --- |
| 待办事务 | .lint-todo 存储目录. |
| 文件路径 | 要返回待办事宜文件的相对文件路径 . |
| 应锁 | 如果 .lint- todo 存储文件应该被锁定, 否则是虚假的 。 默认: 真. |

## 已读取 TodoData (baseDir) QQ

读取.lint-todo目录中的待办文件并返回数组中的待办文件.

**仁爱**:全球职能  
**回返**: 数组 [待办文件](https://github.com/ember-template-lint/ember-template-lint-todo-utils/blob/master/src/types/todo.ts#L61)

| 参数 | 说明 |
| --- | --- |
| 碱性 | 包含.lint-todo存储目录的基础目录. |

## 获取 Todo Batches( 可能是todos, 已有, 选项) QQ

获得包含待办事宜项目的4个地图来添加,去除,过期的,或稳定(不修改)的.

**仁爱**:全球职能  
**回返**\- 对象: [托多贝奇](https://github.com/ember-template-lint/ember-template-lint-todo-utils/blob/master/src/types/todo.ts#L36)。 。 。 .

| 参数 | 说明 |
| --- | --- |
| 也许托多斯 | 记录违规情况. |
| 现有 | 已有的要完成的擦拭数据 . |
| 选项 | 包含写入选项的对象 . |

## 应用 Todo Changes( baseDir, 添加、 删除、 shouldLock)

应用基于批次的添加或去除的待办事宜更改 `getTodoBatches`。 。 。 .

**仁爱**:全球职能

| 参数 | 默认 | 说明 |
| --- | --- | --- |
| 碱性 |  | 包含.lint-todo存储目录的基础目录. |
| 添加 |  | 批次待办事要加. |
| 删除 |  | 要删除的一批待办事宜. |
| 应锁 | `true` | 如果 .lint- todo 存储文件应该被锁定, 否则是虚假的 。 默认: 真. |

## ADD Operations ONLY(操作)

压缩策略只可在待办事宜存储文件中添加操作 .

**仁爱**:全球职能  
**回返**: 如果行与添加操作相匹配, 否则是虚假的 .

| 参数 | 说明 |
| --- | --- |
| 操作 | 单行操作从todo存储文件读取. |

## EXCLUDE EXPERED( 操作) QX

从待办事宜存储文件中删除所有已过期操作的压缩策略 .

**仁爱**:全球职能  
**回返**: 如果操作没有过期, 否则是虚假的 .

| 参数 | 说明 |
| --- | --- |
| 操作 | 单行操作从todo存储文件读取. |

## 压缩 TodoStorageFile( BaseDir, 压缩战略) QQ

根据紧凑策略压缩.lint-todo存储文件.

**仁爱**:全球职能  
**回返**:收缩的托多斯数.

| 参数 | 说明 |
| --- | --- |
| 碱性 | 包含.lint-todo存储目录的基础目录. |
| 紧凑战略 | 压缩存储文件时使用的策略 。 默认: ADD Operations ONLY |

## 获取 TodoConfig( baseDir, 引擎, 自定义 DaysToDecay) QQ

获得待办事宜配置. 配置值可以在

包裹。 。

**仁爱**:全球职能  
**回返**: - 待办配置对象.

| 参数 | 说明 |
| --- | --- |
| 碱性 | 包含项目软件包的基目录. json. |
| 引擎 | 此配置的引擎, 例如 Eslint |
| 自定义日期toDecay | 可选自定义日期来进行衰变配置 . |

**示例**

```json
{
  "lintTodo": {
    "some-engine": {
      "daysToDecay": {
        "warn": 5,
        "error": 10
      },
      "daysToDecayByRule": {
        "no-bare-strings": { "warn": 10, "error": 20 }
      }
    }
  }
}
```

一个.lint-todorc.js文件 **示例**

```js
module.exports = {
  "some-engine": {
    "daysToDecay": {
      "warn": 5,
      "error": 10
    },
    "daysToDecayByRule": {
      "no-bare-strings": { "warn": 10, "error": 20 }
    }
  }
}
```

环境变量`TODO_DAYS_TO_WARN` 或者说 `TODO_DAYS_TO_ERROR`(中文(简体) ) - Env vars 覆盖软件包. json 配置

直接通过,例如从命令行选项. - 在选项中超过 env vars 和 package.json 配置

## 校验 Config( baseDir) {}

验证我们是否在一个地点有一个独特的配置 .

**仁爱**:全球职能  
**回返**: 表示配置是否独一无二的配置结果

| 参数 | 说明 |
| --- | --- |
| 碱性 | 包含项目软件包的基目录. json. |

## 获得Severity( 今天要完成) QQ

根据待办事宜数据的衰减日期返回正确的重度级别.

**仁爱**:全球职能  
**回返**: Severity - 根据衰变日期的评价得出的Lint严重性.

| 参数 | 说明 |
| --- | --- |
| 待办事宜 | 待办事宜数据. |
| {\\fn华文楷体\\fs16\\1che0e0e0}今天 | 代表日期的编号(UNIX Epoch - 毫秒) |

## 已过期( 日期, 今天) @% 1

评估日期是否过期( 比今天提前)

**仁爱**:全球职能  
**回返**: 如果日期早于今天, 否则是虚假的

| 参数 | 说明 |
| --- | --- |
| 日期 | 评估日期 |
| {\\fn华文楷体\\fs16\\1che0e0e0}今天 | 代表日期的编号(UNIX Epoch - 毫秒) |

## 获得DatePart( 日期) QQ

将日期转换为仅包含年份、月份和天数值(时间为零).

**仁爱**:全球职能  
**回返**: 日期 - 时间为零的日期 eg. '2021-01-01T08:00:00.000Z' (中文(简体) )

| 参数 | 说明 |
| --- | --- |
| 日期 | 转换日期 |

## inDays( 开始日期, 结束日期) QQ

返回两个日期之间的天数相差.

**仁爱**:全球职能  
**回返**: 代表日期之间天数的数字

| 参数 | 说明 |
| --- | --- |
| 开始日期 | 开始日期 |
| 结束日期 | 结束日期 |

## 页:1

以短格式格式格式格式化日期, 例如 2021-01-01

**仁爱**:全球职能  
**回返**: 代表格式化日期的字符串

| 参数 | 说明 |
| --- | --- |
| 日期 | 格式化日期 |

## 常见问题

### @ember-template-lint/todo-utils 是什么？

\[\[\(\]https://badge\.fury\.io/js/%40ember-template-lint%2 Ftodo-uti 互联网档案馆的存檔,存档日期2013-12-20

### 如何安装 @ember-template-lint/todo-utils？

在项目目录运行 npm install @ember-template-lint/todo-utils，或使用 pnpm add / yarn add / bun add。

### @ember-template-lint/todo-utils 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @ember-template-lint/todo-utils 支持 ESM 还是 CommonJS？

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

### @ember-template-lint/todo-utils 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js 12\.\* \|\| \>= 14。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @ember-template-lint/todo-utils 可以商用吗？

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

### @ember-template-lint/todo-utils 的下载量有多少？

根据 npm 官方下载统计，@ember-template-lint/todo-utils 在 2026/10/14 – 2026/11/12 这 30 天内被下载 63,172 次，日均约 2,106 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @ember-template-lint/todo-utils 还在维护吗？

最新版本 11\.0\.0 发布于 2021/12/03（4 年前）；至今共发布 37 个版本，其中过去 12 个月发布了 0 个；首次发布于 2020/10/16。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

