# depd 中文文档

规范地址：https://npmcn.com/package/depd/

版本：2\.0\.0
npm 元数据更新时间：2022-06-15T00:47:42.530Z
中文译文更新时间：2026-11-04T20:06:01.401Z
软件包许可：MIT

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

原始 npm 页面：https://www.npmjs.com/package/depd
原文对照：https://npmcn.com/package/depd/?lang=original
项目主页：https://github.com/dougwilson/nodejs-depd#readme
源码仓库：https://github.com/dougwilson/nodejs-depd

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

- 包体积（解压后）：27.1 kB，6 个文件
- TypeScript 类型：未声明
- Node.js 要求：\>= 0\.8
- 运行依赖：0 个
- 首次发布：2014-06-15T05:36:40.048Z
- 最新版本发布：2018-10-26T17:52:55.936Z
- 近 30 天下载量：643638372（2026-10-05 至 2026-11-03，npm 官方下载统计）
- 已发布版本数：17（近 12 个月 0 个）

## 中文简介

摒弃所有的东西

## 安装

```sh
npm install depd
```

也可以使用：`pnpm add depd`、`yarn add depd`、`bun add depd`

## README

# depd

[![NPM Version](https://badgen.net/npm/v/depd)](https://npmjs.org/package/depd) [![NPM Downloads](https://badgen.net/npm/dm/depd)](https://npmjs.org/package/depd) [![Node.js Version](https://badgen.net/npm/node/depd)](https://nodejs.org/en/download/) [![Linux Build](https://badgen.net/travis/dougwilson/nodejs-depd/master?label=linux)](https://travis-ci.org/dougwilson/nodejs-depd) [![Windows Build](https://badgen.net/appveyor/ci/dougwilson/nodejs-depd/master?label=windows)](https://ci.appveyor.com/project/dougwilson/nodejs-depd) [![Coverage Status](https://badgen.net/coveralls/c/github/dougwilson/nodejs-depd/master)](https://coveralls.io/r/dougwilson/nodejs-depd?branch=master)

摒弃所有的东西

> 模块越大，责任越大；标记已弃用的东西！

## 安装

本模块直接安装使用 `npm`：

```sh
$ npm install depd
```

这个模块也可以与系统捆绑在一起 [Browserify](http://browserify.org/) 或 [webpack](https://webpack.github.io/)， 虽然默认情况下，该模块将更改它的API，不再显示或 跟踪的用法。

## API

```js
var deprecate = require('depd')('my-module')
```

此库允许您向用户显示弃用消息。 此库的弃用警告超出了标准 调用堆栈的自省（但仅是它感兴趣的位） 在)。

而不仅仅是在第一次调用deprecated 函数，从此不再调用，此模块将在第一次调用时发出警告 每个唯一调用站点的不赞成的函数，使其成为理想的警报 在整个代码库中使用所有弃用的用户，而不仅仅是 无论发生什么，都先执行。

该模块的弃用警告还包括文件和行 已弃用函数所在模块的调用信息 在。

**请注意** 类的接口 `debug` 模块, 该模块使用调用文件获取调用堆栈的边界， 所以你应该总是创建一个新的 `deprecate` 对象，而不是 在某个中央文件中。

### depd(名称空间)

类中给定的名称空间名称创建一个新的deprecate函数 消息，并将在堆栈进入 调用此函数的文件。强烈建议您使用 模块的名称作为命名空间。

### 反对(消息)

从弃用的代码中调用此函数以显示弃用消息。 此消息将在每个唯一的调用站点上显示一次。呼叫者网站是 首先调用堆栈中与调用者不同的文件中的站点 函数。

如果省略该信息，则根据站点为您生成消息 的 `deprecate()` 调用并将显示所调用函数的名称， 类似于堆栈跟踪中显示的名称。

### 轻视。函数(fn、消息)

调用此函数将给定函数包装在任何的弃用消息中 调用函数。可以提供可选消息来提供自定义 消息。

### 轻视。属性（obj, prop, message）

调用此函数将对象上的给定属性包装在弃用消息中 对该属性的任何访问或设置。可以提供可选消息 来提供自定义消息。

该方法必须在属性所属的对象上调用(而不是 继承自原型)。

如果属性是数据描述符，则将其转换为访问器 描述符，以便显示弃用消息。

### 的过程。(“弃用”,fn)

此模块将允许通过发出 错误类型为“deprecation” `process`． 如果没有 对于这种类型的监听器，错误将像往常一样写入STDERR，但是如果 如果有侦听器，则不会向STDERR写入任何内容，而是只写入 发出。从这里，您可以将错误写入另一种格式或到 日志源。

该错误表示弃用，并且只使用相同的方法发出一次 将规则写入STDERR。该错误具有以下属性：

-   `message` -这是图书馆给的信息
-   `name` -这总是 `'DeprecationError'`
-   `namespace` -这是弃用的命名空间
-   `stack` -这是调用弃用的东西的堆栈

例子 `error.stack` 输出：

```
DeprecationError: my-cool-module deprecated oldfunction
    at Object.<anonymous> ([eval]-wrapper:6:22)
    at Module._compile (module.js:456:26)
    at evalScript (node.js:532:25)
    at startup (node.js:80:7)
    at node.js:902:3
```

### process.env.NO\_DEPRECATION

作为已弃用模块的用户，环境变量 `NO_DEPRECATION` 提供了一个快速的解决方案，以沉默弃用警告是 输出。格式类似于 `DEBUG`：

```sh
$ NO_DEPRECATION=my-module,othermod node app.js
```

这将抑制“my-module”和“othermod”的弃用输出。 以逗号分隔的名称空间列表。压制每一个警告 在所有名称空间中使用该值 `*` 对于名称空间。

提供论证 `--no-deprecation` 到 `node` 可执行文件将抑制 所有弃用（仅在Node.js 0.8或更高版本中可用）。

**请注意** 这不会抑制对任何“弃用”的弃用。 事件监听器，只是输出到STDERR。

### process.env.TRACE\_DEPRECATION

作为已弃用模块的用户，环境变量 `TRACE_DEPRECATION` 作为一种解决方案来获得更详细的位置信息 通过包括整个堆栈跟踪来警告。格式与 `NO_DEPRECATION`：

```sh
$ TRACE_DEPRECATION=my-module,othermod node app.js
```

这将包括为“my-module”和 “othermod”。以逗号分隔的名称空间列表。追踪每一个 警告所有名称空间，使用该值 `*` 对于名称空间。

提供论证 `--trace-deprecation` 到 `node` 可执行程序跟踪 所有弃用（仅在Node.js 0.8或更高版本中可用）。

**请注意** 这将不会追踪到被沉默的诅咒 `NO_DEPRECATION`。

## 显示

![message](https://npmcn.com/package/depd/files/message.png)

当用户调用库中标记为已弃用的函数时，他们将 将看到以下内容被写入STDERR(以给定的颜色，相似的颜色？ 和布局 `debug` 模块):

```
bright cyan    bright yellow
|              |          reset       cyan
|              |          |           |
▼              ▼          ▼           ▼
my-cool-module deprecated oldfunction [eval]-wrapper:6:22
▲              ▲          ▲           ▲
|              |          |           |
namespace      |          |           location of mycoolmod.oldfunction() call
               |          deprecation message
               the word "deprecated"
```

如果用户将他们的STDERR重定向到不支持的文件或其他地方 颜色，他们看到（类似的布局） `debug` 模块):

```
Sun, 15 Jun 2014 05:21:37 GMT my-cool-module deprecated oldfunction at [eval]-wrapper:6:22
▲                             ▲              ▲          ▲              ▲
|                             |              |          |              |
timestamp of message          namespace      |          |             location of mycoolmod.oldfunction() call
                                             |          deprecation message
                                             the word "deprecated"
```

## 例子

### 弃用对函数的所有调用

这将显示一条关于“oldfunction”已被弃用的消息 从STDERR上的“my-module”。

```js
var deprecate = require('depd')('my-cool-module')

// message automatically derived from function name
// Object.oldfunction
exports.oldfunction = deprecate.function(function oldfunction () {
  // all calls to function are deprecated
})

// specific message
exports.oldfunction = deprecate.function(function () {
  // all calls to function are deprecated
}, 'oldfunction')
```

### 有条件地弃用函数调用

这将显示一个关于“weirdfunction”被弃用的消息 从STDERR上的“my-module”调用少于2个参数。

```js
var deprecate = require('depd')('my-cool-module')

exports.weirdfunction = function () {
  if (arguments.length < 2) {
    // calls with 0 or 1 args are deprecated
    deprecate('weirdfunction args < 2')
  }
}
```

当调用 `deprecate` 作为一个函数，警告是根据每个调用站点计数的 在您自己的模块中，因此您可以显示不同的弃用 在不同的情况下，用户仍然会得到所有的警告：

```js
var deprecate = require('depd')('my-cool-module')

exports.weirdfunction = function () {
  if (arguments.length < 2) {
    // calls with 0 or 1 args are deprecated
    deprecate('weirdfunction args < 2')
  } else if (typeof arguments[0] !== 'string') {
    // calls with non-string first argument are deprecated
    deprecate('weirdfunction non-string first arg')
  }
}
```

### 弃用属性访问

这将显示一条关于“oldprop”被弃用的消息 从STDERR上的“my-module”访问。将显示弃用 当设置值和获取值时。

```js
var deprecate = require('depd')('my-cool-module')

exports.oldprop = 'something'

// message automatically derives from property name
deprecate.property(exports, 'oldprop')

// explicit message
deprecate.property(exports, 'oldprop', 'oldprop >= 0.10')
```

## 许可证

[麻省理工学院](https://npmcn.com/package/depd/LICENSE)

## 常见问题

### depd 是什么？

摒弃所有的东西

### 如何安装 depd？

在项目目录运行 npm install depd，或使用 pnpm add / yarn add / bun add。

### depd 支持 TypeScript 吗？

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

### depd 需要什么版本的 Node\.js？

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

### depd 可以商用吗？

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

### depd 的下载量有多少？

根据 npm 官方下载统计，depd 在 2026/10/05 – 2026/11/03 这 30 天内被下载 643,638,372 次，日均约 21,454,612 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### depd 还在维护吗？

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

