Skip to content

如何忽略项目中的特定警告

通过覆盖 console.errorconsole.warn 方法来实现。这种方法允许你筛选并忽略特定的错误(警告)消息,而不会影响其他正常的错误(警告)日志输出。

以下示例忽略了 antd 组件库中部分废弃 API 的警告

ts
/** 忽略特定的错误日志
 *
 * 包括部分无法解决的问题、特性被废弃的警告、不影响系统运行的错误
 */
export const ignoreConsoleError = () => {
  if (process.env.NODE_ENV !== 'development') return; // 仅在开发环境忽略
  const originalConsoleError = console.error;

  const IGNORED_ERRORS = [
    'Warning: [antd: Modal] `visible` will be removed in next major version, please use `open` instead.',
    'Warning: [antd: Drawer] `visible` is deprecated which will be removed in next major version, please use `open` instead.',
    'Warning: [antd: Drawer] `afterVisibleChange` is deprecated which will be removed in next major version, please use `afterOpenChange` instead.',
  ];

  console.error = function filterErrors(msg, ...args) {
    if (!IGNORED_ERRORS.some((error) => msg.includes(error))) {
      originalConsoleError(msg, ...args);
    }
  };
};