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"
};

Jawaban:


451

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

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

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 */

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

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,
  },

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

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.


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


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
  }
};

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);

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"
  ]
}

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 . :)


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

4

Anda harus menambahkan satu aturan dan menambahkan env Anda:

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

Anda dapat menambahkan env lainnya.


4

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

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

3

Oktober 2018,

kerjakan saja:

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

jawaban yang lain dengan

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

tidak bekerja !


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.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.