块编辑器开发文档

@wordpress/deprecated

💡 云策文档标注

概述

@wordpress/deprecated 是 WordPress 的一个弃用工具包,用于记录消息以通知开发者某个功能已被弃用。它提供 API 来标准化弃用日志,并支持通过 Hook 自定义处理。

关键要点

  • 安装方式:通过 npm install @wordpress/deprecated --save 安装,需在 ES2015+ 环境中运行,否则需包含 polyfill。
  • 核心 API:deprecated() 函数用于记录弃用消息,接受功能名称和选项参数(如 since、version、alternative 等)。
  • Hook 支持:提供 'deprecated' action,允许开发者添加自定义处理逻辑,如警报或日志。
  • 内部状态:logged 对象用于跟踪已记录的消息,确保每条消息只记录一次。
  • 包结构:作为 Gutenberg 项目的一部分,以 monorepo 形式组织,可独立贡献。

代码示例

import deprecated from '@wordpress/deprecated';

deprecated( 'Eating meat', {
    since: '2019.01.01',
    version: '2020.01.01',
    alternative: 'vegetables',
    plugin: 'the earth',
    hint: 'You may find it beneficial to transition gradually.',
} );

注意事项

确保在支持 ES2015+ 的环境中使用,否则需引入 @wordpress/babel-preset-default 中的 polyfill。贡献时请参考 Gutenberg 项目的贡献指南。


📄 原文内容

Deprecation utility for WordPress. Logs a message to notify developers about a deprecated feature.

Installation

Install the module

npm install @wordpress/deprecated --save

This package assumes that your code will run in an ES2015+ environment. If you’re using an environment that has limited or no support for such language features and APIs, you should include the polyfill shipped in @wordpress/babel-preset-default in your code.

Hook

The deprecated action is fired with three parameters: the name of the deprecated feature, the options object passed to deprecated, and the message sent to the console.

Example:

import { addAction } from '@wordpress/hooks';

function addDeprecationAlert( message, { version } ) {
    alert( `Deprecation: ${ message }. Version: ${ version }` );
}

addAction(
    'deprecated',
    'my-plugin/add-deprecation-alert',
    addDeprecationAlert
);

API

default

Logs a message to notify developers about a deprecated feature.

Usage

import deprecated from '@wordpress/deprecated';

deprecated( 'Eating meat', {
    since: '2019.01.01',
    version: '2020.01.01',
    alternative: 'vegetables',
    plugin: 'the earth',
    hint: 'You may find it beneficial to transition gradually.',
} );

// Logs: 'Eating meat is deprecated since version 2019.01.01 and will be removed from the earth in version 2020.01.01. Please use vegetables instead. Note: You may find it beneficial to transition gradually.'

Parameters

  • feature string: Name of the deprecated feature.
  • options [DeprecatedOptions]: Personalisation options

logged

Object map tracking messages which have been logged, for use in ensuring a message is only logged once.

Type

  • Record< string, true >

Contributing to this package

This is an individual package that’s part of the Gutenberg project. The project is organized as a monorepo. It’s made up of multiple self-contained software packages, each with a specific purpose. The packages in this monorepo are published to npm and used by WordPress as well as other software projects.

To find out more about contributing to this package or Gutenberg as a whole, please read the project’s main contributor guide.