#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. Я вижу… Тогда бесплатно 😉