Я только начал использовать приложение create-response-app с машинописным текстом
create-react-app my-app --scripts-version=react-scripts-ts
а конфигурация tslint.json по умолчанию не допускает console.info ().
Как я могу (пока) включить console.info?
Документация для этого находится в https://palantir.github.io/tslint/rules/no-console/. Но они не говорят, где поставить эту строчку:
"no-console": [true, "log", "error"]
Я искал и нашел этот Синтаксис файла конфигурации tslint.json, поэтому попробовал это:
"rules": {
"no-console": [true, "warning"]
}
В попытке получить сообщения журнала, которые были бы просто предупреждениями. Но это не сработало.
Я закомментировал несколько строк console.info (), которые у меня есть, но я хочу иметь возможность сделать это в будущем.





Добавьте // tslint:disable-next-line:no-console в строку прямо перед вызовом console.info, чтобы предотвратить появление сообщения об ошибке только один раз.
Если вы хотите полностью отключить правило, добавьте следующее на ваш tslint.json (скорее всего, в вашу корневую папку):
{
"rules": {
"no-console": false
}
}
"no-console": false работает для меня, но мне нужно перезапустить "npm start", чтобы он вступил в силу.
"no-console": false у меня не работает, даже с npm run start.
@EricFulmer поместил это в узел "jsRules". "jsRules": {"no-console": false},
Я добавил правило в jsRules и сделал новый yarn start, прежде чем ошибки исчезли. Не уверен, кто из них это сделал.
или в той же строке, что и следующий: console.info('hello world'); // tslint:disable-line:no-console
Согласно документам: https://eslint.org/docs/user-guide/getting-started#configuration
Кстати, ваша правильная настройка будет
{
"rules": {
"no-console": false
}
}
Для тех из вас, кто пришел сюда со смешанной базой кода javascript и машинописного текста.
Возможно, вам потребуется определить опцию 'no-console' в jsRules, объекте правил jslints для файлов javascript, т.е. существуют отдельные объекты правил для javascript и машинописного текста.
//tslint.json
{
"extends": ["tslint:recommended", "tslint-react", "tslint-config-prettier"], //Example...
"rules": {
"no-console": false //Disable for typescript
},
"jsRules": {
"no-console": false //Disable for javascript
}
}
но - какова цель этой штуки?
Из jsRules или без консоли?
no-console - кажется (я посмотрел), что он нужен только для того, чтобы предупредить вас, что сообщения консоли не принадлежат производственному коду. Это вроде как сомнительное правило каждый раз, когда ваш env не является продуктом.
В какой-то степени я понимаю вашу точку зрения. Одна вещь, которую следует учитывать, заключается в том, что консоль не является частью языка javascript, она обычно реализуется в движках javascript, но в этом суть - она не является частью языка javascript, вы запекаете зависимость в своем коде, которая может существовать или не существовать . С учетом сказанного, я вижу применение этого правила.
@ robertotomás, Это правило основано на лучшем опыте отсутствия сообщений console.info в вашем коде. В производственном коде этого не должно быть, чтобы вы знали, что продукт не готов. У вас может быть две конфигурации tslint: одна разрешает это, а другая нет. У меня есть функция logger.info, которая вызывает console.info (то есть оболочку), которая позволяет мне легко включать или отключать ведение журнала для всего приложения. Я не говорю, что это лучшая практика, просто то, что я сделал. Это также упрощает интеграцию с другим регистратором, например github.com/krakenjs/beaver-logger.
Добавьте следующее к вашему tslint.json
{
"rules": {
"no-console": {
"severity": "warning",
}
}
}
Это правильный синтаксис для определения правила без консоли (или любого другого правила в этом отношении), но только с предупреждением, а не с ошибкой (очевидно, измените параметры на все, что хотите)
"no-console": {
"severity": "warning",
"options": [
"log",
"error",
"debug",
"info",
"time",
"timeEnd",
"trace"
]
},
Это отлично работает как предупреждение. Кстати, это не задокументировано в документации tslint.
в typeScript версии 3 обновите tslint.json в соответствии с ключевым правилом, как показано ниже:
"no-console": [
true,
"debug",
"time",
"timeEnd",
"trace"
],
таким образом вы просто указываете debug, time, timeEnd, trace, которые не будут использоваться, если в вашем tslint по умолчанию "информация" есть в списке, просто удалите его.
Вот как это должно быть сделано, как указано в документах palantir.github.io/tslint/rules/no-console
если // tslint:disable-next-line:no-console не работает, попробуйте // eslint:disable-next-line:no-console
Я обрабатываю tslint правило "без консоли" для каждого файла, который, как я обнаружил, удобен и изолирован на этапе разработки.
Как только мне нужно использовать первую console.info (); Visual Studio Code показывает возможность добавить:
// tslint:disable-next-line: no-console
console.info();
Итак, здесь я просто удаляю «-next-line», и эта команда покрывает весь файл.
// tslint:disable: no-console
console.info();
Я надеюсь, что в качестве альтернативы отключение этой функции для всего приложения поможет.
РОН
Я не уверен, что произошло, но теперь "no-console": false у меня не работает. Я нашел способ обойтись без
// tslint:disable:no-consoleв верхней части файла.