ESLint - "উইন্ডো" সংজ্ঞায়িত করা হয় না। প্যাকেজ.জসনে কীভাবে বৈশ্বিক চলকগুলিকে অনুমতি দেওয়া যায়


186

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

"উইন্ডো" সংজ্ঞায়িত করা হয় না

আমি এখানে এসিলিন্ট ডক্সে এটি দেখতে পাচ্ছি :

নিম্নলিখিতটি উইন্ডোটিকে কোডের জন্য একটি বৈশ্বিক পরিবর্তনশীল হিসাবে সংজ্ঞায়িত করে যা পরীক্ষা করা নিয়মটিকে ট্রিগার করা উচিত নয়:

valid: [
  {
    code: "window.alert()",
    globals: [ "window" ]
  }
]

আমি প্যাকেজটির জন্য এই জাতীয় কিছু যুক্ত করার চেষ্টা করেছি।জসন ফাইলটিতে বিশ্বব্যাপী পরিবর্তনশীল হিসাবে এসিলিন্ট "উইন্ডো" রাখতে অনুমতি দেওয়া হয়েছে তবে আমি অবশ্যই কিছু ভুল করছি। দস্তাবেজগুলি থেকে দেখে মনে হচ্ছে আমার একটি পৃথক ফাইলে এই জাতীয় কিছু করার দরকার হতে পারে তবে প্যাকেজ.জসন ফাইলে ঠিক কিছু অনুমোদিত গ্লোবাল ভেরিয়েবলগুলি সংজ্ঞায়নের কোনও উপায় আছে কি?


এফওয়াইআই, আপনি যদি নোড ব্যবহার করছেন এবং ESLint সনাক্ত করতে চান globalতবে "node": trueআপনার "env"কনফিগারেশনের অধীনে সেট করা নিশ্চিত করা দরকার ।
জোশুয়া পিন্টার

উত্তর:


308

একটা builtin হয় environment: browserযে অন্তর্ভুক্ত window

উদাহরণ .eslintrc.json:

"env": {
    "browser": true,
    "node": true,
    "jasmine": true
  },

আরও তথ্য: http://eslint.org/docs/user-guide/configuring.html# বিবরণী- পরিবেশ

আরো দেখুন chevin99 দ্বারা উত্তর নিচে।package.json


একেবারে সেরা উত্তর, ধন্যবাদ। আমি এটি ভেবেও দেখিনি :)
নাইট ইয়োশি

4
আমার মতো অন্য কেউ ধরা পড়লে: এটি হওয়া উচিত .eslintrcনয়package.json
এ জার অফ ক্লে

এটি কেবল একটি ফাইলে প্রয়োগ করার কোনও উপায় আছে?
আনানফায়


102

আমি এই পৃষ্ঠায় এটি পাওয়া যায়: http://eslint.org/docs/user-guide/configuring

প্যাকেজ.জসনে, এটি কাজ করে:

"eslintConfig": {
  "globals": {
    "window": true
  }
}

62
এটি করার সঠিক উপায় হ'ল "এনভিনি": browser "ব্রাউজার": সত্য}
নিকোলাস

@ নিকোলাস, হ্যাঁ, আমি সম্ভবত আপনার পরামর্শের পদ্ধতিটি ব্যবহার করব যদি এটিই আমি প্রথমে পেয়েছি তবে এই উত্তরটি আপনার প্যাকেজ.জেসনে আপনার এসলিন্ট কনফিগারেশনটি দেখানোর ক্ষেত্রে অন্তত দরকারী।
chevin99

4
এসিলিন্টের জন্য গ্লোবালগুলিকে এই জাতীয়ভাবে ইনলাইন করাও সম্ভব: / * বৈশ্বিক কৌণিক: সত্য * /
মিরকো

প্রশ্নটি প্যাকেজ.জসন ফাইলটি কীভাবে ব্যবহার করতে হয় তা বিশেষভাবে জিজ্ঞাসা করে
ভার্চুয়াললাস্ট

59

যোগ .eslintrcপ্রকল্পের রুট হবে।

{
  "globals": {
    "document": true,
    "foo": true,
    "window": true
  }
}

কোনওভাবে প্যাকেজে এসলিং কনফিগ স্থাপন করা হয়েছে।জসন আমার পক্ষে কাজ করেনি (ধারণাগতভাবে ভুল হওয়া ছাড়া)। .Eslintrc.json এ এটি যুক্ত করা যদিও কাজ করে।
পেটরুনভ

1
@Petrunov .eslintrc.jsonমাত্র হতে পারে.eslintrc
কার্ক Strobeck

এটি যে ক্ষেত্রে আমি অভিজ্ঞতা নিচ্ছি সে ক্ষেত্রে এটি কাজ করে না - আমি ক্রোম এক্সটেনশন প্রকল্পের জন্য ঝাল দিয়ে এসলিন্ট ব্যবহার করছি। গ্লোবালগুলিতে আমি "ক্রোম" সেট করি: সত্য এবং এটি এখনও এটি একটি স্বীকৃত গ্লোবাল হওয়ায় একটি ত্রুটি ছুঁড়ে দেয়।
স্টিফেন টেট্রোল্ট

42

আপনার .eslintrc.json এর নীচের লেখাটি থাকা উচিত।
এইভাবে ESLint আপনার গ্লোবাল ভেরিয়েবল সম্পর্কে জানে।

{
  "env": {
    "browser": true,
    "node": true
  }                                                                      
}

13

আমি জানি তিনি ইনলাইন সংস্করণ জিজ্ঞাসা করছেন না । তবে যেহেতু এই প্রশ্নটি প্রায় 100k দর্শন করেছে এবং আমি এটি সন্ধান করতে এখানে পড়েছি, আমি এটি পরবর্তী সহকর্মীর জন্য এখানে রেখে দেব:

নিশ্চিত হয়ে নিন যে --no-inline-configপতাকাটি দিয়ে ESLint চালিত হচ্ছে না (যদি এটি পরিচিত না শোনা যায় তবে আপনি সম্ভবত ভালই যাবেন)। তারপরে, আপনার কোড ফাইলটিতে এটি লিখুন (স্পষ্টতা এবং কনভেনশনের জন্য, এটি ফাইলের উপরে লেখা আছে তবে এটি যে কোনও জায়গায় কাজ করবে):

/* eslint-env browser */

এটি ইসলিন্টকে বলে যে আপনার কাজের পরিবেশটি একটি ব্রাউজার, তাই এখন এটি ব্রাউজারে কী কী জিনিস উপলভ্য তা সে অনুযায়ী তা গ্রহণ করে।

প্রচুর পরিবেশ রয়েছে এবং আপনি একই সাথে একের অধিক ঘোষণা করতে পারেন, উদাহরণস্বরূপ, ইন-লাইন:

/* eslint-env browser, node */

আপনি যদি প্রায় সর্বদা নির্দিষ্ট পরিবেশ ব্যবহার করেন তবে এটি আপনার ইএসলিন্টের কনফিগারেশন ফাইলে সেট করা ভাল এবং সেটিকে ভুলে যাওয়া ভাল।

তাদের ডক্স থেকে :

একটি পরিবেশ পূর্বনির্ধারিত গ্লোবাল ভেরিয়েবলগুলি সংজ্ঞায়িত করে। উপলভ্য পরিবেশগুলি হ'ল:

  • browser - ব্রাউজার গ্লোবাল ভেরিয়েবল।
  • node - নোড.জেএস গ্লোবাল ভেরিয়েবল এবং নোড.জেএস স্কোপিং।
  • commonjs - কমনজেএস গ্লোবাল ভেরিয়েবল এবং কমন জেএস স্কোপিং (এটি ব্রাউজার-কেবল কোডের জন্য ব্যবহার করুন যা ব্রাউজারফি / ওয়েবপ্যাক ব্যবহার করে)।
  • shared-node-browser - গ্লোবালগুলি নোড এবং ব্রাউজার উভয়েরই জন্য সাধারণ।

[...]

পরিবেশ ছাড়াও, আপনি এটিকে আপনার পছন্দসই কিছু উপেক্ষা করতে পারেন। যদি এটি আপনাকে ব্যবহার সম্পর্কে সতর্ক করে console.log()তবে আপনি এ সম্পর্কে সতর্ক হতে চান না, কেবল ইনলাইন:

/* eslint-disable no-console */

সেরা কোডিং অনুশীলনের জন্য প্রস্তাবিত নিয়মগুলি সহ আপনি সমস্ত বিধিগুলির তালিকা দেখতে পারেন ।


2

আপনি যদি কৌণিক ব্যবহার করছেন তবে আপনি এটি বন্ধ করতে পারেন:

"env": {
    "browser": true,
    "node": true
},
"rules" : {
    "angular/window-service": 0
 }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.