Есть ли какой-нибудь способ отключить все ошибки и предупреждения, которые появляются в консоли?

#reactjs

#reactjs

Вопрос:

Я не хочу показывать предупреждения в консоли для определенной среды разработки. Есть ли какой-нибудь способ добиться этого? Мое приложение было загружено с помощью create react app.

Комментарии:

1. Вы не отключаете их, вы их исправляете .

Ответ №1:

Поскольку вы используете React, я предполагаю, что вы уже используете babel. Для этой цели есть плагин. Это называется babel-plugin-transform-remove-console . Это исключит оператор all console.log во время процесса сборки.
Установите это в свое приложение и настройте его .babelrc следующим образом:

 {
  "plugins": ["transform-remove-console"]
}
  

Вы также можете указать вариант (варианты) функций консоли для исключения:

 {
  "plugins": [ ["transform-remove-console", { "exclude": [ "error", "warn"] }] ]
}
  

Я советую не использовать журналы консоли в вашем коде, за исключением случаев, когда это необходимо.

Комментарии:

1. Спасибо за ответ. Журналы генерируются proptypes, и на самом деле у меня сейчас нет времени исправлять их все, поэтому я хотел отключить их для своей рабочей сборки в настоящее время.

2. Есть ли какой-нибудь способ удалить консоль без необходимости ее сборки? Мне нужно удалить их на основе сред разработки

3. Вы можете преобразовать свой .babelrc в babel.config.js , а затем установить плагин на основе NODE_ENV

Ответ №2:

В моем App.js У меня есть следующий код для выполнения этого:

 import { YellowBox } from 'react-native';

componentDidMount() {
    // The following lines are a workaround
    // in order to stop getting warnings about timer
    // See: https://github.com/firebase/firebase-js-sdk/issues/97#issuecomment-365456531
    YellowBox.ignoreWarnings(['Setting a timer']);
    const _console = _.clone(console);
    console.warn = message => {
      if (message.indexOf('Setting a timer') <= -1) {
        _console.warn(message);
      }
    };
}
  

Комментарии:

1. На самом деле мне нужно было решение для react, а не для react-native.

2. Я вижу… Тогда бесплатно 😉