JSHint
JSHint - bu JavaScript-da yozilgan dasturlarda shubhali foydalanishni belgilovchi dastur. Asosiy loyiha kutubxonaning o'zi va tugun moduli sifatida tarqatilgan CLI dasturidan iborat.
Asosiy foydalanish
Birinchidan, JSHintni o'zingiz yoqtirgan muhitda qanday o'rnatish haqida batafsil ma'lumot olish uchun o'rnatish ko'rsatmalarini tekshiring. Bajariladigan buyruq qatori ham, JavaScript API ham JSHint xatti-harakatlarini sozlashning noyob usullarini taklif qiladi. Eng keng tarqalgan foydalanish:
O'zingiz yoqtirgan muhitdan qat'i nazar, siz JSHint xatti-harakatlarini istalgan sonli linting opsiyalarini belgilash orqali boshqarishingiz mumkin.
Konfiguratsiya
JSHint standart ogohlantirishlar to'plami bilan birga keladi, lekin u juda sozlanishi uchun mo'ljallangan. JSHint nusxasini sozlashning uchta asosiy usuli mavjud: siz --config bayrog'i orqali konfiguratsiya faylini qo'lda belgilashingiz, maxsus .jshintrc faylidan foydalanishingiz yoki konfiguratsiyangizni jshintConfig xususiyati ostida loyihalaringiz paketi.json fayliga qo'yishingiz mumkin. .jshintrc bo'lsa, JSHint bu faylni liniyalangan fayl bilan bir xil katalogdan qidira boshlaydi. Agar topilmasa, u katalog daraxtidan bir daraja yuqoriga, fayl tizimi ildizigacha ko'tariladi. (E'tibor bering, agar kirish stdin dan kelgan bo'lsa, JSHint konfiguratsiya faylini topishga harakat qilmaydi)
Ushbu sozlash har bir loyiha uchun turli xil konfiguratsiya fayllariga ega bo'lish imkonini beradi. Faylingizni loyihaning asosiy katalogiga joylashtiring va JSHint-ni loyiha katalog daraxtining istalgan joyidan ishga tushirsangiz, xuddi shu konfiguratsiya faylidan foydalaniladi.
Konfiguratsiya fayli oddiy JSON fayli boʻlib, qaysi JSHint opsiyalarini yoqish yoki oʻchirishni belgilaydi. Misol uchun, quyidagi fayl aniqlanmagan va foydalanilmagan o'zgaruvchilar haqida ogohlantirishlarni faollashtiradi va JSHint-ga MY_GLOBAL nomli global o'zgaruvchi haqida xabar beradi.
{ "undef": true, "unused": true, "globals": { "MY_GLOBAL": true } }
Inline konfiguratsiya
Konfiguratsiya fayllaridan foydalanish bilan bir qatorda JSHint-ni fayllaringiz ichidan maxsus izohlar yordamida sozlashingiz mumkin. Bu izohlar jshint yoki globals (quyida toʻliq roʻyxat) kabi yorliq bilan boshlanadi va undan keyin vergul bilan ajratilgan qiymatlar roʻyxati keladi. Misol uchun, quyidagi parcha aniqlanmagan va foydalanilmagan o'zgaruvchilar haqida ogohlantirishlarni faollashtiradi va JSHint-ga MY_GLOBAL nomli global o'zgaruvchi haqida xabar beradi.
/* jshint undef: true, unused: true */ /* globals MY_GLOBAL */
Direktivlar
Bu erda JSHint tomonidan qo'llab-quvvatlanadigan konfiguratsiya direktivalari ro'yxati:
jshint
JSHint opsiyalarini sozlash uchun direktiv.
/* jshint strict: true */
jslint
JSHint-mos JSLint opsiyalarini o'rnatish uchun direktiv
/* jslint vars: true */
globallar
JSHint-ga boshqa joyda aniqlangan global o'zgaruvchilar haqida aytib berish uchun direktiv. Agar qiymat noto'g'ri bo'lsa (standart), JSHint bu o'zgaruvchini faqat o'qish uchun deb hisoblaydi. Undef variantiga ta'sir qiladi.
/* globals MY_LIB: false */
Shuningdek, siz joriy faylning biron bir joyida ishlatilmasligiga ishonch hosil qilish uchun ba'zi global o'zgaruvchilarni qora ro'yxatga kiritishingiz mumkin.
/* globals -BAD_LIB */
eksport qilingan
JSHint-ga joriy faylda aniqlangan, lekin boshqa joyda ishlatiladigan global o'zgaruvchilar haqida aytib berish uchun direktiv. Foydalanilmayotgan variantga ta'sir qiladi.
/* exported EXPORTED_LIB */
a'zolari
JSHint-ga siz foydalanmoqchi bo'lgan barcha xususiyatlar haqida xabar berish uchun direktiv. Ushbu ko'rsatma eskirgan.
e'tibor bermaslik
JSHint-ga kod blokini e'tiborsiz qoldirishni aytish uchun ko'rsatma.
// Code here will be linted with JSHint. /* jshint ignore:start */ // Code here will be ignored by JSHint. /* jshint ignore:end */
ignore:start va ignore:end orasidagi barcha kodlar JSHint-ga o'tkazilmaydi, shuning uchun siz Facebook React kabi istalgan til kengaytmasidan foydalanishingiz mumkin. Bundan tashqari, siz keyingi sharh bilan bitta qatorni e'tiborsiz qoldirishingiz mumkin:
ignoreThis(); // jshint ignore:line