ChatGPT解决这个技术问题 Extra ChatGPT

tslint 说不允许调用 console.log - 我该如何允许?

我刚开始使用带有 typescript 的 create-react-app

create-react-app my-app --scripts-version=react-scripts-ts

并且默认的 tslint.json 配置不允许 console.log()。

我如何(现在)启用console.log?

相关文档位于 https://palantir.github.io/tslint/rules/no-console/。但他们没有说把这条线放在哪里:

    "no-console": [true, "log", "error"]

我搜索并找到了这个 tslint.json configuration file syntax,所以我尝试了这个:

"rules": {
    "no-console": [true, "warning"]
}

试图获取只是警告的日志消息。但这没有用。

我已经注释掉了我拥有的几行 console.log() 行,但我希望将来能够做到这一点。


C
Christian Ivicevic

在调用 console.log 之前的行中添加 // tslint:disable-next-line:no-console 以防止错误消息仅出现一次。

如果您想完全禁用该规则,请将以下内容添加到您的 tslint.json(很可能在您的根文件夹中):

{
    "rules": {
        "no-console": false
    }
}

我不确定发生了什么,但现在 "no-console": false 对我不起作用。我发现解决方法是将 // tslint:disable:no-console 放在文件顶部。
"no-console": false 对我有用,但我必须重新启动 "npm start" 才能使其生效。
"no-console": false 对我不起作用,即使使用 npm run start
@EricFulmer 将其放在“jsRules”节点中。 "jsRules": { "no-console": false },
或与以下内容在同一行中:console.log('hello world'); // tslint:disable-line:no-console
L
Lee Brindley

对于那些带着 javascript 和 typescript 的混合代码库来到这里的人。

您可能需要在 jsRules 中定义 'no-console' 选项,用于 javascript 文件的 jslints 规则对象,即 javascript 和 typescript 有单独的规则对象。

//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 - 似乎(我查了一下)它只是为了警告您控制台消息不属于生产代码。每当您的环境不是产品时,这都会成为一个值得商榷的规则
我在一定程度上明白你的观点。要考虑的一件事是控制台不是 javascript 语言的一部分,它通常在 javascript 引擎中实现,但这就是重点 - 它不是 javascript 语言的一部分,您正在将依赖项烘焙到您的代码中,可能存在也可能不存在.话虽如此,我可以看到这条规则的用途。
@robertotomás,此规则基于代码中不包含 console.log 消息的最佳实践。生产代码不应该有这个,所以这让你知道你没有准备好生产。您可能有两种 tslint 配置,一种允许,另一种不允许。我有一个调用 console.loglogger.info 函数(因此是一个包装器),它允许我轻松启用或禁用整个应用程序的日志记录。我并不是说这是最佳实践,只是我已经做过的事情。它还可以更轻松地与 github.com/krakenjs/beaver-logger 等其他记录器集成。
L
Liu Xuan

将以下内容添加到您的 tslint.json

{
   "rules": {
      "no-console": {
         "severity": "warning",
      } 
   }
}

L
Liran H

这是定义无控制台规则(或任何其他规则)的正确语法,但仅带有警告而不是错误(显然将选项更改为您想要的任何内容)

"no-console": {
    "severity": "warning",
    "options": [
        "log",
        "error",
        "debug",
        "info",
        "time",
        "timeEnd",
        "trace"
    ]
},

这完全可以作为警告。顺便说一句,这在 tslint 文档中没有记录。
C
Community

我处理 tslint “no-console” 规则的方式是每个文件,我发现在开发阶段很方便和隔离。

只要我需要使用第一个 console.log(); Visual Studio Code 显示添加选项:

// tslint:disable-next-line: no-console console.log();

所以在这里我只是删除“-next-line”,这个命令将覆盖整个文件。

// tslint:disable: no-console console.log();

我希望它有助于替代禁用整个应用程序的功能。

罗恩


A
Adel Balbisi

如果 // tslint:disable-next-line:no-console 不起作用,请尝试使用 // eslint:disable-next-line:no-console


tslint:disable-next-line:no-console 对我来说很好用
a
alveomaster

在 typeScript 版本 3 中,在关键规则下更新 tslint.json,如下所示:

"no-console": [
    true,
    "debug",
    "time",
    "timeEnd",
    "trace"
],

这样,您只需指定不使用的调试、时间、时间结束、跟踪,如果在您的默认 tslint 中“信息”在列表中,只需将其删除。


这是应该按照文档palantir.github.io/tslint/rules/no-console中所述的方式完成的
g
gazdagergo

只是绕过 linter 的肮脏技巧:

const { log } = console; log('Hello linter'); // TODO: remove

l
loretoparisi

根据文档:https://eslint.org/docs/user-guide/getting-started#configuration

"off" 或 0 - 关闭规则

"warn" 或 1 - 将规则作为警告打开(不影响退出代码)

“错误”或 2 - 将规则作为错误打开(退出代码将为 1)

顺便说一句,您的正确设置是

{
  "rules": {
    "no-console": false
  }
}

R
Rashid Iqbal
  {
    "extends": ["tslint:recommended", "tslint-react", "tslint-config-prettier"],
    "linterOptions": {
        "exclude": [
            "config/**/*.js",
            "node_modules/**/*.ts",
            "coverage/lcov-report/*.js"
        ]
    },
    "rules": {
        "no-console": false
    },
    "jsRules": {
        "no-console": false
    }
 }

https://i.stack.imgur.com/ltn8M.png


M
MikhailRatner

语法变了!

对于下一行异常,在 no-console 之前需要有一个空格:// eslint-disable-next-line no-console

对于文件异常,它还必须在多行注释语法中:/* eslint-disable no-console */

它也可能取决于某些配置。


W
Wes

对于那些来这里寻找一种方法来保持 console.log 不被允许,但允许像 console.timeconsole.timeEnd 这样有用的方法的人,例如,您可以在 .eslintrc 规则中全局显式定义它:

 "no-console": ["error", {"allow": ["time", "timeEnd", "trace"]}],

关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅