ESLint ডলার ($) সংজ্ঞায়িত করা হয় না। (নন


107
$("#ID").hide();

আমি আমার প্রকল্পে ESLint যুক্ত করি।

প্রতীক ব্যতীত সবকিছু ঠিক আছে $

আমি ত্রুটি পেয়েছি: [eslint] '$' is not defined. (no-undef)

আমার .eslintrc.json(দ্রষ্টব্য: এতে একটি সমতুল্য জাভাস্ক্রিপ্ট রয়েছে যখন jquery ফাংশনগুলিকে অস্বীকার করার জন্য অতিরিক্ত নিয়ম রয়েছে):

{
"env": {
    "browser": true,
    "commonjs": true,
    "es6": true
},
"extends": [
    "eslint:recommended"
],
"parserOptions": {
    "sourceType": "module"
},
"plugins": [
    "dollar-sign",
    "jquery"
],
"rules": {       
    "indent": [
        "error" ,
        "tab"
    ],
    "linebreak-style": [
        "error",
        "windows"
    ],
    "quotes": [
        "error",
        "double"
    ],
    "semi": [
        "error",
        "always"
    ],
    "jquery/no-ajax": 2,
    "jquery/no-animate": 2,
    "jquery/no-attr": 2,
    "jquery/no-bind": 2,
    "jquery/no-class": 2,
    "jquery/no-clone": 2,
    "jquery/no-closest": 2,
    "jquery/no-css": 2,
    "jquery/no-data": 2,
    "jquery/no-deferred": 2,
    "jquery/no-delegate": 2,
    "jquery/no-each": 2,
    "jquery/no-fade": 2,
    "jquery/no-filter": 2,
    "jquery/no-find": 2,
    "jquery/no-global-eval": 2,
    "jquery/no-has": 2,
    "jquery/no-hide": 2,
    "jquery/no-html": 2,
    "jquery/no-in-array": 2,
    "jquery/no-is": 2,
    "jquery/no-map": 2,
    "jquery/no-merge": 2,
    "jquery/no-param": 2,
    "jquery/no-parent": 2,
    "jquery/no-parents": 2,
    "jquery/no-parse-html": 2,
    "jquery/no-prop": 2,
    "jquery/no-proxy": 2,
    "jquery/no-serialize": 2,
    "jquery/no-show": 2,
    "jquery/no-sizzle": 2,
    "jquery/no-slide": 2,
    "jquery/no-text": 2,
    "jquery/no-toggle": 2,
    "jquery/no-trigger": 2,
    "jquery/no-trim": 2,
    "jquery/no-val": 2,
    "jquery/no-wrap": 2,
    "dollar-sign/dollar-sign": [
        2,
        "ignoreProperties"
    ]
}

আপনি দেখতে পাচ্ছেন যে আমি দুটি প্লাগইন যুক্ত করেছি: এসলিন্ট-প্লাগইন-ডলার-সাইন এবং এসলিন্ট-প্লাগইন-জ্যাকোয়ারি।

কেন এই নিয়ম কাজ করে না?

"dollar-sign/dollar-sign": [ 2, "ignoreProperties" ]

উত্তর:


211

এমনকি আপনি যদি

"env": {
  "browser": true,
  "commonjs": true,
  "es6": true,
  "jquery": true
},

$jqueryপরিবেশ সক্ষম না করে বৈশ্বিক হিসাবে ঘোষিত হয় না । তার কারণে, আপনি একটি no-undefত্রুটি পেয়ে যাচ্ছেন যে আপনি এমন ভেরিয়েবল ব্যবহার করছেন যা ঘোষিত হয়নি।


27

https://eslint.org/docs/user-guide/configuring# স্পেসিফিকেশন- পরিবেশ

আপনি আপনার জাভাস্ক্রিপ্ট ফাইলটির অভ্যন্তরে একটি মন্তব্য ব্যবহার করে পরিবেশগুলি নির্দিষ্ট করতে পারেন, নিম্নলিখিত ফর্ম্যাটটি ব্যবহার করুন:

আপনার জাভাস্ক্রিপ্ট ফাইলটির শুরুতে একটি মন্তব্য হিসাবে নীচের লাইনটি যুক্ত করুন।

    /* eslint-env jquery */

এস্লিন্টারটি '$' এ অপরিজ্ঞাত ছোঁড়া বন্ধ করবে কারণ এটি জানতে পারবে আপনি jQuery এর সাথে কাজ করছেন।


4
অনেক ধন্যবাদ. এটি কনফিগারেশন ফাইলগুলি পরিবর্তন করা থেকে আমাকে রক্ষা করেছিল।
দিব্যং

ধন্যবাদ! এটি এর চেয়ে অনেক বেশি পরিষ্কার/* global $ */
নোহ সুসমান

20

আপনি আপনার জেএস ফাইলের শীর্ষে এই লাইনটি যুক্ত করতে পারেন:

/* global $ */

"$" এর উপর সতর্কতা রোধ করতে, বা অন্য কোনও বিশ্বব্যাপী যেমন "ভারনাম" এর জন্য:

/* global varName */

12

ভিতরে .eslintrc.js

অ্যাড

{
  "globals": {
    "$": true
  }
}

Https://eslint.org/docs/user-guide/configuring#specifing-globals দেখুন


4
এটি অন্যান্য লাইব্রেরির জন্য ভাল, আমার ক্ষেত্রে ত্রিজ। আমি "globals": { "THREE": true },ধন্যবাদ যোগ করে এসিলিন্টটি ঠিক করে দিয়েছি !
ড্যানিভিকারিও

4
ওয়েবপ্যাক গ্লোবালগুলি সন্ধানের জন্য এই সমাধানটির জন্য সারাদিন অনুসন্ধান করা ছিল, এটি কেবল আমার প্রয়োজন w তোমাকে ধন্যবাদ!
বিশ্রামে

0

আপনার js ফাইলের শীর্ষে এই লাইনগুলি যুক্ত করুন -

/* eslint-env es6 */
/* eslint-disable */ 
//Function expression to select elements 
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.