为何 eslint 在 Nodejs 里对 console.log 显示报错呢?

为何 eslint 在 Nodejs 里对 console.log 显示报错呢?

我在写一个 node.js 的项目的时候设置了 eslint,但是当我写 console 的时候,他却显示报错,这是怎么回事?虽然运行正常但是就是无法直视红字报错。

还有就是 node.js 现在支持 es6 的写法了吗?

8 回复

eslint 默认是没有规则的。
你的规则设置了不允许使用 console 语句才会报错。


module.exports = {
“env”: {
“es6”: true,
“node”: true
},
“extends”: “eslint:recommended”,
“parserOptions”: {
“ecmaFeatures”: {
“experimentalObjectRestSpread”: true,
“jsx”: true
},
“sourceType”: “module”
},
“plugins”: [
“react”
],
“rules”: {
“indent”: [
“error”,
“tab”
],
“linebreak-style”: [
“error”,
“windows”
],
“quotes”: [
“error”,
“single”
],
“semi”: [
“error”,
“always”
]
}
};

我的配置就是这样



<br>module.exports = {<br> "env": {<br> "es6": true,<br> "node": true<br> },<br> "extends": "eslint:recommended",<br> "parserOptions": {<br> "ecmaFeatures": {<br> "experimentalObjectRestSpread": true,<br> "jsx": true<br> },<br> "sourceType": "module"<br> },<br> "plugins": [<br> "react"<br> ],<br> "rules": {<br> "indent": [<br> "error",<br> "tab"<br> ],<br> "linebreak-style": [<br> "error",<br> "windows"<br> ],<br> "quotes": [<br> "error",<br> "single"<br> ],<br> "semi": [<br> "error",<br> "always"<br> ]<br> }<br>};<br>

== 这个排版有点问题,请问是哪个会导致这种报错呢

建议你去搜一下 eslint 的规则列表,有一条是 noconsole,手动加上改 false 试试(

no-console:0

在Node.js中,ESLint对console.log显示报错,通常是因为ESLint默认配置中禁用了控制台输出相关的语句,以遵循更严格的代码规范。console.log等调试语句在生产环境中通常被认为是不应该出现的,因此ESLint默认会对其报错。

要解决这个问题,你可以通过修改ESLint的配置文件来允许console.log的使用。以下是具体的步骤和代码示例:

  1. 找到ESLint配置文件

    ESLint的配置文件可以是.eslintrc.*文件,或者在package.json文件中的eslintConfig字段。

  2. 修改配置文件

    在配置文件中找到rules属性,然后添加或修改no-console规则,将其设置为"off"以禁用该规则。

    {
      "eslintConfig": {
        "rules": {
          "no-console": "off"
        }
      }
    }
    

    如果配置文件是.eslintrc.json,则结构可能略有不同,但rules部分应保持一致。

  3. 保存配置文件并重新运行ESLint

    修改完配置文件后,保存并重新运行ESLint,此时console.log应该不会再报错。

通过以上步骤,你可以解决ESLint对console.log的报错问题,并在需要时继续使用console.log进行调试。

回到顶部