Eslint: Cara menonaktifkan "statement console tak terduga" di Node.js?

268

Saya menggunakan eslint dengan Sublime Text 3 dan saya menulis gulpfile.js.

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

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

Tetapi eslint terus menunjukkan kesalahan: "Kesalahan: Pernyataan konsol tidak terduga. (Tidak ada konsol)" kesalahan eslint

Saya menemukan dokumen resmi di sini , tetapi saya masih tidak tahu cara menonaktifkannya.

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

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

juga tidak bekerja.

Plugin Sublime Text 3 saya: SublimeLinter dan SublimeLinter-contrib-eslint.

Ini .eslintrc.jsfile saya :

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"
};
Jean YC Yang
sumber

Jawaban:

451

Buat .eslintrc.js di direktori file Anda, dan letakkan konten berikut di dalamnya:

module.exports = {
    rules: {
        'no-console': 'off',
    },
};
perangkat lunak markas
sumber
2
Menurut halaman github resmi untuk plugin eslint ( github.com/roadhump/... ), meletakkan file .eslintrc ke folder proyek Anda harus melakukan trik ... untuk melanjutkan debugging, saya sarankan mencoba menjalankan eslint dari baris perintah. Cukup instal node.js jika Anda belum menginstalnya, kemudian jalankan npm install eslintdari konsol / command prompt, lalu navigasikan ke folder proyek Anda di konsol / command prompt, dan jalankaneslint .
markasoftware
10
ini berfungsi (untuk saya) ketika file tersebut bernama .eslintrc.json
AlexWien
13
Atau, Anda dapat menulis "rules": {"no-console": "off"}agar tidak terlalu samar. "warn"dan "error"menjadi 2 pilihan lainnya.
TheDarkIn1978
1
The ESLint file konfigurasi yang digunakan untuk menjadi hanya .eslintrctapi sekarang yang usang dan harus dinamai sesuai dengan format yang digunakan, misalnya .eslintrc.js, .eslintrc.yaml, dll
Colin D Bennett
4
Tidak berfungsi di vue-cli 3 : lihat jawaban stackoverflow.com/a/53333105/150370
German Latorre
142

Anda harus memperbarui file konfigurasi eslint untuk memperbaikinya secara permanen. Jika tidak, Anda dapat mengaktifkan atau menonaktifkan sementara eslint memeriksa konsol seperti di bawah ini

/* eslint-disable no-console */
console.log(someThing);
/* eslint-enable no-console */
Pengecualian
sumber
2
Bagaimana cara mengkonfigurasi saya .eslintrc, tolong beri tahu saya?
Jean YC Yang
7
Tidak perlu menambahkan kedua baris. Dengan hanya menempatkan sebelumnya Anda console.logpengecualian berikut cukup: eslint-disable-next-line no-console.
Jonathan Brizio
132

Untuk vue-cli 3 buka package.jsondan di bawah bagian eslintConfigdiletakkan di no-consolebawah rulesdan restart server dev ( npm run serveatau yarn serve)

...
"eslintConfig": {
    ...
    "rules": {
      "no-console": "off"
    },
    ...
GiorgosK
sumber
2
Terima kasih, karena solusi @markasoftware tidak berfungsi jika Anda datang ke sini untuk proyek cue-cli.
muenalan
package.json bukan satu-satunya cara untuk melakukan ini. File konfigurasi terpisah juga merupakan standar.
Michael Cole
1
Terima kasih! Kamu menyelamatkan hariku.
Ank
Terima kasih! Aturan dalam dokumen: konfigurasi eslint.org/docs/user-guide/configuring#configuring-rules , aturan: eslint.org/docs/rules
Denis
1
yang ada di folder root @MaxRocket
GiorgosK
35

Opsi yang lebih baik adalah membuat tampilan pernyataan console.log dan debugger bersyarat berdasarkan lingkungan simpul.

  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,
  },
Frank Spin
sumber
konsol pss masih dicetak di lingkungan produksi
Sanyam Jain
19

Berikut ini berfungsi dengan ESLint di VSCode jika Anda ingin menonaktifkan aturan hanya satu baris.

Untuk menonaktifkan baris berikutnya:

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

Untuk menonaktifkan baris saat ini:

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

Jika Anda menginstal eslint di proyek lokal Anda, Anda harus memiliki direktori / node_modules / eslint / conf / dan di bawah direktori itu file eslint.json. Anda dapat mengedit file dan memodifikasi entri "tidak ada konsol" dengan nilai "tidak aktif" (walaupun nilai 0 didukung juga):

"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",
    ....

Saya harap "konfigurasi" ini dapat membantu Anda.

Jose M Bel
sumber
Lebih baik lagi, jalankan saja skrip praktis ini di semua file Anda:find . -name '*.js' -exec gawk -i inplace 'NR==1{print "/* eslint-disable */"} {print}' {} \;
user234461
Aturan dalam dokumen: konfigurasi eslint.org/docs/user-guide/configuring#configuring-rules , aturan: eslint.org/docs/rules
Denis
10

Saya menggunakan Ember.js yang menghasilkan file bernama .eslintrc.js. Menambahkan "no-console": 0ke objek aturan melakukan pekerjaan untuk saya. File yang diperbarui terlihat seperti ini:

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

Jika Anda hanya ingin menonaktifkan aturan satu kali, Anda ingin melihat jawaban Exception .

Anda dapat meningkatkan ini dengan hanya menonaktifkan aturan hanya untuk satu baris:

... di baris saat ini:

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

... atau di baris berikutnya:

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

dalam vueproyek saya, saya memperbaiki masalah ini seperti ini:

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"
  ]
}
huang botao
sumber
ini sangat membantu jika salah satu menghasilkan proyek vue melalui vue-cliatau vue uidan itu berisi a vue.config.jsdan package.json. Edit package.json.
swiesend
6

Jika Anda masih mengalami masalah bahkan setelah mengkonfigurasi package.json Anda sesuai dengan dokumentasi (jika Anda memilih untuk menggunakan package.json untuk melacak daripada file konfigurasi yang terpisah):

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

Dan itu masih tidak berfungsi untuk Anda, jangan lupa Anda harus kembali ke baris perintah dan lakukan npm instal lagi . :)

rampok
sumber
5

Dalam package.json Anda akan menemukan sebuah eslintConfigbaris. Baris 'aturan' Anda dapat masuk ke sana seperti ini:

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

Anda harus menambahkan satu aturan dan menambahkan env Anda:

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

Anda dapat menambahkan env lainnya.

Alessander França
sumber
4

Menempatkan ini dalam file .eslintrc.js yang ada di lokasi proyek bekerja untuk saya

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

Oktober 2018,

kerjakan saja:

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

jawaban yang lain dengan

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

tidak bekerja !

stackdave
sumber
0

Atau alih-alih mematikan 'tanpa konsol', Anda dapat mengizinkan. Dalam file .eslintrc.js put

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

Ini akan memungkinkan Anda untuk melakukan console.logdan console.clearlain-lain tanpa melemparkan kesalahan.

V.Villacis
sumber
-2

Gunakan Objek Jendela

window.console.log("..")

Kartik Bhargav
sumber