Eslint: Node.js'de “beklenmeyen konsol deyimi” nasıl devre dışı bırakılır?


268

Sublime Text 3 ile eslint kullanıyorum ve yazıyorum gulpfile.js.

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

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

Ancak eslint hata gösteriyor: "Hata: Beklenmeyen konsol deyimi. (Konsol yok)" eslint hatası

Burada resmi bir belge buldum , ancak hala nasıl devre dışı bırakacağımı bilmiyorum.

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

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

çalışmıyor.

Sublime Text 3 eklentilerim: SublimeLinter ve SublimeLinter-antl-eslint.

İşte benim .eslintrc.jsdosyam:

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

Yanıtlar:


451

Dosyanızın dizininde bir .eslintrc.js oluşturun ve içine aşağıdaki içerikleri yerleştirin:

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

2
Eslint eklentisinin ( github.com/roadhump/… ) resmi github sayfasına göre , proje klasörünüze bir .eslintrc dosyası koymak hile yapmalıdır ... hata ayıklamaya devam etmek için çalıştırmayı denemenizi tavsiye ederim komut satırından eslint. Yüklemediyseniz, node.js dosyasını yükleyin, ardından npm install eslintbir konsol / komut isteminden çalıştırın, ardından konsol / komut isteminde proje klasörünüze gidin ve çalıştırıneslint .
markasoftware

10
(benim için) dosya .eslintrc.json olarak adlandırıldığında çalışır
AlexWien

13
Alternatif olarak, "rules": {"no-console": "off"}daha az şifreli olmak için yazabilirsiniz . "warn"ve "error"diğer 2 seçenek olmak.
TheDarkIn1978

1
ESLint yapılandırma dosyası olarak kullanılan basit .eslintrcama şimdi artık kullanılmamaktadır ve kullanılan formata göre adlandırılması gerektiğini örn .eslintrc.js, .eslintrc.yamlvb
Colin D Bennett

4
Vue-cli 3'te çalışmıyor : cevaba bakınız stackoverflow.com/a/53333105/150370
Alman Latorre

142

Bunu kalıcı olarak düzeltmek için eslint config dosyasını güncellemelisiniz. Aksi takdirde aşağıdaki gibi konsol için eslint kontrolünü geçici olarak etkinleştirebilir veya devre dışı bırakabilirsiniz

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

2
Nasıl yapılandırılır .eslintrc, lütfen söyle?
Jean YC Yang

7
Her iki satırı da eklemek gerekmez. Yalnızca önceki koymak ile console.logaşağıdaki istisna yeterlidir: eslint-disable-next-line no-console.
Jonathan Brizio

132

İçin vue-cli 3 açık package.jsonve bölüm altında eslintConfigkoymak no-consolealtında rulesve yeniden dev sunucusu ( npm run serveya da yarn serve)

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

2
Teşekkürler, çünkü bir cue-cli projesi için buraya gelirseniz @markasoftware çözümü çalışmaz.
muenalan

package.json bunu yapmanın tek yolu değil. Ayrı yapılandırma dosyaları da standarttır.
Michael Cole

1
Teşekkürler! Günümü kurtardın.
Ank

Teşekkürler! Dokümanlardaki kurallar : yapılandırma eslint.org/docs/user-guide/configuring#configuring-rules , kurallar: eslint.org/docs/rules
Denis

1
kök klasörde @MaxRocket
GiorgosK

35

Daha iyi bir seçenek, console.log ve hata ayıklayıcı ifadelerinin görüntülenmesini düğüm ortamına bağlı olarak koşullu hale getirmektir.

  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 msj hala üretim ortamında yazdırılıyor
Sanyam Jain

19

Kuralı yalnızca bir satır için devre dışı bırakmak istiyorsanız, aşağıdakiler VSCode içinde ESLint ile çalışır.

Sonraki satırı devre dışı bırakmak için:

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

Geçerli satırı devre dışı bırakmak için:

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

15

Yerel projenizin altına eslint yüklerseniz, / node_modules / eslint / conf / dizinine ve bu dizinin altında eslint.json dosyasına sahip olmalısınız. Dosyayı düzenleyebilir ve "konsol dışı" girişini "kapalı" değeriyle değiştirebilirsiniz (0 değeri de desteklense de):

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

Umarım bu "yapılandırma" size yardımcı olabilir.


Daha da iyisi, tüm dosyalarınızda bu kullanışlı komut dosyasını çalıştırın:find . -name '*.js' -exec gawk -i inplace 'NR==1{print "/* eslint-disable */"} {print}' {} \;
user234461

Dokümanlardaki kurallar : yapılandırma eslint.org/docs/user-guide/configuring#configuring-rules , kurallar: eslint.org/docs/rules
Denis

10

Adında bir dosya oluşturan Ember.js kullanıyorum .eslintrc.js. "no-console": 0Kurallar nesnesine eklemek işi benim için yaptı. Güncellenen dosya şöyle görünür:

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

10

Kuralı sadece bir kez devre dışı bırakmak istiyorsanız, İstisna cevabına bakmak istersiniz .

Kuralı yalnızca bir satır için devre dışı bırakarak bunu iyileştirebilirsiniz:

... mevcut satırda:

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

... veya bir sonraki satırda:

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

9

benim vueprojede bu sorunu şöyle düzelttim:

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

tek bir vue proje yalak oluşturulan bu yararlı vue-cliveya vue uive içerdiği bir vue.config.jsve package.json. Düzenleyin package.json.
swiesend

6

Package.json dosyasını belgelere göre yapılandırdıktan sonra bile hala sorun yaşıyorsanız (ayrı yapılandırma dosyaları yerine izlemek için package.json kullanmayı seçtiyseniz):

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

Ve yine de sizin için çalışmıyor , komut satırına geri dönüp npm kurulumunu tekrar yapmanız gerektiğini unutmayın . :)


5

Gelen package.json bir bulacaksınız eslintConfighattı. 'Kurallar' hattınız oraya şu şekilde girebilir:

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

4

Bir kural eklemeli ve env'nizi eklemelisiniz:

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

başka enveler ekleyebilirsiniz.


4

Bunu proje yerinde olan .eslintrc.js dosyasına koymak benim için çalıştı

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

3

2018 Ekim,

sadece yap:

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

anneler cevap verir

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

çalışmıyor !


0

Alternatif olarak, 'konsol yok' özelliğini kapatmak yerine izin verebilirsiniz. Gelen .eslintrc.js dosya put

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

Bu yapmanızı sağlayacaktır console.logve console.clearhatalarına yol açan olmadan vb.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.