Eslint:Node.jsで「予期しないコンソールステートメント」を無効にする方法は?


268

私はeslintをSublime Text 3で使用していgulpfile.jsます。

/*eslint-env node*/
var gulp = require('gulp');

gulp.task('default', function(){
    console.log('default task');
});

しかし、eslintはエラーを表示し続けます:「エラー:予期しないコンソールステートメント(コンソールなし)」 eslintエラー

ここ公式ドキュメントを見つけましたが、それを無効にする方法がわかりません。

/*eslint-env node*/
var gulp = require('gulp');

/*eslint no-console: 2*/
gulp.task('default', function(){
    console.log('default task');
});

どちらも機能しません。

私のSublime Text 3プラグイン:SublimeLinterおよびSublimeLinter-contrib-eslint。

これが私の.eslintrc.jsファイルです:

module.exports = {
    "rules": {
        "no-console":0,
        "indent": [
            2,
            "tab"
        ],
        "quotes": [
            2,
            "single"
        ],
        "linebreak-style": [
            2,
            "unix"
        ],
        "semi": [
            2,
            "always"
        ]
    },
    "env": {
        "browser": true,
        "node": true
    },
    "extends": "eslint:recommended"
};

回答:


451

ファイルのディレクトリに.eslintrc.jsを作成し、その中に次のコンテンツを配置します。

module.exports = {
    rules: {
        'no-console': 'off',
    },
};

2
ええと、eslintプラグインの公式githubページ(github.com/roadhump/…)によると、.eslintrcファイルをプロジェクトフォルダに置くとうまくいくはずです...デバッグを続行するには、実行することをお勧めしますコマンドラインからeslint。node.jsがインストールされていない場合は、インストールしてnpm install eslintからコンソール/コマンドプロンプトから実行し、コンソール/コマンドプロンプトでプロジェクトフォルダーに移動して実行しますeslint .
markasoftware

10
ファイルが.eslintrc.jsonと呼ばれるときに(私にとっては)機能します
AlexWien

13
代わりに、あなたは"rules": {"no-console": "off"}より不可解に書くことができます。 "warn"そして"error"他の2つのオプションです。
TheDarkIn1978 2017

1
単純にするために使用ESLint設定ファイル.eslintrc廃止されており、例えば、使用されるフォーマットに従って命名されなければならない今はなく.eslintrc.js.eslintrc.yamlなど、
コリン・D・ベネット

4
vue-cli 3では機能しません:回答を参照してくださいstackoverflow.com/a/53333105/150370
ドイツ語Latorre

142

これを永久に修正するには、eslint設定ファイルを更新する必要があります。または、以下のようにコンソールのeslintチェックを一時的に有効または無効にすることができます

/* eslint-disable no-console */
console.log(someThing);
/* eslint-enable no-console */

2
私を設定する方法.eslintrc、教えてください?
Jean YC Yang

7
両方の行を追加する必要はありません。前に置くだけでconsole.log、次の例外で十分です:eslint-disable-next-line no-console
Jonathan Brizio

132

VUE-cliの3オープンpackage.jsonとセクションの下でeslintConfig置きますno-consoleの下でrules、再起動のdevのサーバー(npm run serveまたはyarn serve

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

2
@markasoftwareソリューションは、cue-cliプロジェクトのためにここに来た場合は機能しません。
ムエナラン

これを行う方法は、package.jsonだけではありません。個別の設定ファイルも標準です。
Michael Cole

1
ありがとう!あなたは私の日を救った。
Ank

ありがとう!ドキュメント内のルール:設定eslint.org/docs/user-guide/configuring#configuring-rules、ルール:eslint.org/docs/rules
Denis

1
ルートフォルダ@MaxRocketの1つ
GiorgosK

35

より良いオプションは、console.logとデバッガーステートメントの表示をノード環境に基づいて条件付きにすることです。

  rules: {
    // allow console and debugger in development
    'no-console': process.env.NODE_ENV === 'production' ? 2 : 0,
    'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
  },

コンソールのメッセージがまだ本番環境で印刷される
Sanyam Jain

19

ルールを1行だけ無効にしたい場合、以下はVSCodeのESLintで機能します。

次の行を無効にするには:

// eslint-disable-next-line no-console
console.log('hello world');

現在の行を無効にするには:

console.log('hello world'); // eslint-disable-line no-console

15

ローカルプロジェクトの下にeslintをインストールする場合、/ node_modules / eslint / conf /ディレクトリがあり、そのディレクトリの下にeslint.jsonファイルがあります。ファイルを編集し、「no-console」エントリを値「off」で変更できます(ただし、0の値もサポートされています)。

"rules": {
    "no-alert": "off",
    "no-array-constructor": "off",
    "no-bitwise": "off",
    "no-caller": "off",
    "no-case-declarations": "error",
    "no-catch-shadow": "off",
    "no-class-assign": "error",
    "no-cond-assign": "error",
    "no-confusing-arrow": "off",
    "no-console": "off",
    ....

この「構成」がお役に立てば幸いです。


さらに良いことに、ちょうどすべてのファイルにこの便利なスクリプトを実行しますfind . -name '*.js' -exec gawk -i inplace 'NR==1{print "/* eslint-disable */"} {print}' {} \;
user234461

ドキュメント内のルール:設定eslint.org/docs/user-guide/configuring#configuring-rules、ルール:eslint.org/docs/rules
Denis

10

という名前のファイルを生成するEmber.jsを使用しています.eslintrc.js"no-console": 0ルールオブジェクトに追加することで、仕事が完了しました。更新されたファイルは次のようになります。

module.exports = {
  root: true,
  parserOptions: {
    ecmaVersion: 6,
    sourceType: 'module'
  },
  extends: 'eslint:recommended',
  env: {
    browser: true
  },
  rules: {
    "no-console": 0
  }
};

10

ルールを1度だけ無効にしたい場合は、例外の回答を確認してください。

これを改善するには、1行のみのルールを無効にします。

...現在の行:

console.log(someThing); /* eslint-disable-line no-console */

...または次の行:

/* eslint-disable-next-line no-console */
console.log(someThing);

9

私のvueプロジェクトでは、この問題を次のように修正しました:

vim package.json
...
"rules": {
    "no-console": "off"
},
...

ps : package.json is a configfile in the vue project dir, finally the content shown like this:

{
  "name": "metadata-front",
  "version": "0.1.0",
  "private": true,
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },
  "dependencies": {
    "axios": "^0.18.0",
    "vue": "^2.5.17",
    "vue-router": "^3.0.2"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "^3.0.4",
    "@vue/cli-plugin-eslint": "^3.0.4",
    "@vue/cli-service": "^3.0.4",
    "babel-eslint": "^10.0.1",
    "eslint": "^5.8.0",
    "eslint-plugin-vue": "^5.0.0-0",
    "vue-template-compiler": "^2.5.17"
  },
  "eslintConfig": {
    "root": true,
    "env": {
      "node": true
    },
    "extends": [
      "plugin:vue/essential",
      "eslint:recommended"
    ],
    "rules": {
        "no-console": "off"
    },
    "parserOptions": {
      "parser": "babel-eslint"
    }
  },
  "postcss": {
    "plugins": {
      "autoprefixer": {}
    }
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not ie <= 8"
  ]
}

1は、VUEのプロジェクトトラフを生成した場合、これは便利ですvue-clivue ui、それは含まれていvue.config.jspackage.json。を編集しpackage.jsonます。
swiesend

6

ドキュメントに従ってpackage.jsonを設定した後でも問題が解決しない場合(個別の設定ファイルではなくpackage.jsonを使用して追跡することを選択した場合):

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

そして、それでもまだ機能していませんコマンドラインに戻ってnpm installをもう一度実行する必要があることを忘れないでください。:)


5

package.jsonあなたは見つけるでしょうeslintConfigラインを。あなたの 'rules'行は次のように入ることができます:

  "eslintConfig": {
   ...
    "extends": [
      "eslint:recommended"
    ],
    "rules": {
      "no-console": "off"
    },
   ...
  },

4

ルールを1つ追加して、envを追加する必要があります。

{
  "rules": {
    "no-console": "off"
  },
  "env": {
    "browser": true
  }
}

他の環境を追加できます。


4

これをプロジェクトの場所にある.eslintrc.jsファイルに配置すると、うまくいきました

module.exports = {
    rules: {
        'no-console': 0
    }
};

3

2018年10月

ただ:

// tslint:disable-next-line:no-console

別の人が答える

// eslint-disable-next-line no-console

動作しません !


0

または、「コンソールなし」をオフにする代わりに、許可することもできます。では.eslintrc.jsファイルプット

  rules: {
    'no-console': [
      'warn',
      { allow: ['clear', 'info', 'error', 'dir', 'trace', 'log'] }
    ]
  }

これにより、エラーをスローすることなくconsole.logconsole.clearなどを行うことができます。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.