Eslint: Node.js में "अनपेक्षित कंसोल स्टेटमेंट" को कैसे निष्क्रिय करें?


268

मैं उदात्त पाठ 3 के साथ एस्लिंट का उपयोग कर रहा हूं और लिख रहा हूं gulpfile.js

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

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

लेकिन एस्लिंट त्रुटि दिखाता रहता है: "त्रुटि: अनपेक्षित कंसोल स्टेटमेंट। (नो-कंसोल)" एस्लिन्ट एरर

मुझे यहां आधिकारिक दस्तावेज़ मिला , लेकिन मुझे अभी भी नहीं पता है कि इसे कैसे निष्क्रिय किया जाए।

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

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

काम भी नहीं करता है।

मेरा उदात्त पाठ 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
ठीक है, एस्लिंट प्लगइन ( github.com/roadhump/… ) के लिए आधिकारिक गितुब पृष्ठ के अनुसार , एक .llintrc फ़ाइल को अपने प्रोजेक्ट फ़ोल्डर में डालकर चाल चलनी चाहिए ... इसे डीबग करना जारी रखने के लिए, मैं चलाने की कोशिश करूँगा। कमांड लाइन से बचना। बस नोड स्थापित करें। यदि आपके पास यह स्थापित नहीं है, तो npm install eslintकंसोल / कमांड प्रॉम्प्ट से चलाएं , फिर अपने प्रोजेक्ट फ़ोल्डर में कंसोल / कमांड प्रॉम्प्ट पर नेविगेट करें, और चलाएंeslint .
markasoftware

10
यह काम करता है (मेरे लिए) जब फ़ाइल को .eslintrc.json कहा जाता है
AlexWien

13
वैकल्पिक रूप से, आप "rules": {"no-console": "off"}कम गूढ़ होने के लिए लिख सकते हैं । "warn"और "error"अन्य 2 विकल्प होने के नाते।
TheDarkIn1978

1
ESLint विन्यास फाइल हुआ करता था बस .eslintrc, लेकिन अब है कि बहिष्कृत है और इसे इस्तेमाल किया प्रारूप के अनुसार नाम दिया जाना चाहिए, जैसे .eslintrc.js, .eslintrc.yamlआदि
कॉलिन डी बेनेट

4
Vue-cli 3 में काम नहीं करता : उत्तर stackoverflow.com/a/53333105/150370
जर्मन लेटर्रे

141

इसे स्थायी रूप से ठीक करने के लिए आपको एस्लिंट कॉन्फिगर फाइल को अपडेट करना चाहिए। नीचे आप अस्थायी रूप से नीचे की तरह कंसोल के लिए एस्लिंट चेक को सक्षम या अक्षम कर सकते हैं

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

2
मुझे कैसे कॉन्फ़िगर करें .eslintrc, कृपया मुझे बताएं?
जीन वाईसी यांग

7
दोनों लाइनों को जोड़ने के लिए आवश्यक नहीं है। साथ ही अपने पिछले डाल console.logनिम्न अपवाद पर्याप्त है: eslint-disable-next-line no-console
जोनाथन ब्रिज़ियो

132

के लिए Vue-CLI 3 खुला package.jsonऔर धारा eslintConfigडाल no-consoleके नीचेrules और पुन: प्रारंभ डेव सर्वर ( npm run serveया yarn serve)

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

2
धन्यवाद, जैसा कि @markasoftware समाधान काम नहीं करता है यदि आप क्यू-क्ली प्रोजेक्ट के लिए यहां आते हैं।
मुअनलान

package.json ऐसा करने का एकमात्र तरीका नहीं है। अलग-अलग कॉन्फिग फाइल भी एक स्टैंडर हैं।
माइकल कोल

1
धन्यवाद! आपने मेरा दिन बचाया।
अंक

धन्यवाद! डॉक्स में नियम: कॉन्फ़िगरेशन eslint.org/docs/user-guide/configuring#configuring-rules , नियम: eslint.org/docs/rules
डेनिस

1
रूट फ़ोल्डर में एक @MaxRocket
GiorgosK

35

एक अच्छा विकल्प नोड वातावरण के आधार पर कंसोल.लॉग और डिबगर स्टेटमेंट सशर्त का प्रदर्शन करना है।

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

कंसोल संदेश अभी भी उत्पादन वातावरण में प्रिंट करते हैं
सनम जैन

19

VSCode में ESLint के साथ निम्नलिखित कार्य करता है यदि आप नियम को केवल एक पंक्ति के लिए अक्षम करना चाहते हैं।

अगली पंक्ति को अक्षम करने के लिए:

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

वर्तमान लाइन को निष्क्रिय करने के लिए:

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

15

यदि आप अपने स्थानीय प्रोजेक्ट के तहत एस्लिंट स्थापित करते हैं, तो आपके पास एक डायरेक्टरी / नोड_मॉड्यूल्स / एस्लिंट / कन्फ़ेक्शन होना चाहिए और उस डायरेक्टरी के तहत एक फ़ाइल एस्लिंट.जॉन। आप फ़ाइल को संपादित कर सकते हैं और "बंद" मान के साथ "नो-कंसोल" प्रविष्टि को संशोधित कर सकते हैं (हालांकि 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
डेनिस

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

यदि आप केवल एक बार नियम को अक्षम करना चाहते हैं, तो आप अपवाद का जवाब देखना चाहते हैं ।

आप केवल एक पंक्ति के लिए नियम को अक्षम करके इसे सुधार सकते हैं:

... वर्तमान लाइन पर:

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

यह एक सहायक परियोजना गर्त उत्पन्न करता है vue-cliया vue uiयह एक vue.config.jsऔर एक है तो मददगार है package.json। संपादित करें package.json
स्वेसेन्ड

6

यदि आपको अभी भी अपने पैकेज को कॉन्फ़िगर करने के बाद भी परेशानी हो रही है। प्रलेखन के अनुसार (यदि आपने पैकेज का उपयोग करने के लिए चुना है। अलग-अलग फाइल के बजाय ट्रैक करने के लिए)

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

और यह अभी भी आपके लिए काम नहीं कर रहा है, यह न भूलें कि आपको कमांड लाइन पर वापस जाने और एनपीएम को फिर से स्थापित करने की आवश्यकता नहीं है । :)


5

में package.json आप एक मिल जाएगा eslintConfigलाइन। आपकी 'नियम' रेखा इस तरह से वहां जा सकती है:

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

4

आपको एक नियम जोड़ना चाहिए और अपना env जोड़ना चाहिए:

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

आप अन्य envs जोड़ सकते हैं।


4

इसे .eslintrc.js फ़ाइल में डालना जो कि प्रोजेक्ट स्थान पर है, मेरे लिए काम करती है

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

3

2018 अक्टूबर,

बस करो:

// 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.logऔर console.clearआदि करने की अनुमति देगा ।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.