根据传入条件向控制台输出警告消息的实用工具。

安装

安装该模块

npm install @wordpress/warning --save

此包假定你的代码将运行在 ES2015+ 环境中。如果你使用的环境对此类语言特性和 API 的支持有限或完全不支持,则应在代码中包含随 @wordpress/babel-preset-default 提供的 polyfill。

减小打包体积

字面量字符串不会被压缩。将它们保留在生产环境打包文件中可能会显著增加打包体积。

要避免这种情况,你应该:

  1. 将 @wordpress/warning/babel-plugin 放入你的 Babel 配置,或使用@wordpress/babel-preset-default,其中已经包含该 Babel 插件。

    这将确保你的 warning 调用被包裹在一个检查 SCRIPT_DEBUG === true 的条件中。

  2. 使用 UglifyJS、Terser 或任何其他可执行死代码消除的 JavaScript 解析器。这通常与 JavaScript 打包器(例如 webpack)一起使用。

    当以 production 模式解析代码时,warning 调用将被完全移除。

API

default

如果环境不是 production,则显示带有 message 的警告。

用法

import warning from '@wordpress/warning';

function MyComponent( props ) {
  if ( ! props.title ) {
    warning( '`props.title` was not passed' );
  }
  ...
}

参数

  • message string:警告中要显示的消息。

为该包做贡献

这是一个独立软件包,属于 Gutenberg 项目。该项目以 monorepo 形式组织,由多个自包含的软件包组成,每个包都有特定用途。此 monorepo 中的软件包发布到 npm,并由 WordPress 以及其他软件项目使用。

要了解有关为该包或整个 Gutenberg 项目做贡献的更多信息,请阅读项目的主要贡献者指南。