Cara menonaktifkan peringatan 'define' tidak ditentukan menggunakan JSHint dan RequireJS


108

Saya menggunakan RequireJS AMD dalam proyek saya. Ketika saya menjalankan jshint pada proyek saya, itu memunculkan kesalahan seperti

Di AMD Scripts

 'define' is not defined.

Dalam kasus uji Mocha

 'describe' is not defined.
 'it' is not defined.

Bagaimana cara menghapus peringatan ini di jshint?

Jawaban:


187

Hanya untuk memperluas sedikit, inilah .jshintrcpengaturan untuk Mocha:

{
  ....
  "globals"   : {
    /* MOCHA */
    "describe"   : false,
    "it"         : false,
    "before"     : false,
    "beforeEach" : false,
    "after"      : false,
    "afterEach"  : false
  }
}

Dari Dokumen JSHint - false (default) berarti variabel hanya-baca.

Jika Anda menentukan global hanya untuk file tertentu, Anda dapat melakukan ini:

/*global describe, it, before, beforeEach, after, afterEach */

41
kita dapat menggunakan {"mocha": true} 2.5.1+ github.com/jshint/jshint/issues/1330
gwokae

@bendytree, tahukah Anda jika saya dapat menambahkan aturan ini untuk beberapa file / folder yang tidak global?
Gobliins

Komentar @Gobliins Bohdan di atas. Tambahkan baris itu sebagai baris pertama dari file uji mocha Anda dan itu akan memberlakukan aturan hanya untuk file itu
Isaac

15
jshint: {
  options: {
    mocha: true,
  }
}

adalah apa yang kamu inginkan


12

Untuk menghindari peringatan yang tidak ditentukan di jshint untuk javascript tambahkan komentar seperti:

/*global describe:true*/

Pilihan


8

Tambahkan ini di .jshintrc Anda

"predef" : ["define"]   // Custom globals for requirejs

Tidak yakin mengapa seseorang tidak menyukai ini. Saya menggunakan ini persis dalam proyek saya dan lebih bersih daripada jawaban dan karya lain.
Shital Shah

19
predef tidak digunakan lagi, gunakan global
Jonathan Azulay

@JonathanAzulay Saya tidak menemukan catatan penghentian di jshint.com/docs/options/#predef . Saya pikir Global dapat digunakan untuk JavaScript Global kustom misalnya angular, $, jQuery dll dan predef dapat digunakan untuk objek global implisit seperti jendela, dokumen, konsol dll
Amitesh

6

terlambat ke pesta, tetapi gunakan opsi ini di jshintrc:

"dojo": true

dan engkau akan beristirahat dengan damai tanpa peringatan merah ...


6

Jika Anda mengerjakan node js. Tambahkan dua baris ini di awal file Anda

/*jslint node: true */
"use strict";

Pertanyaan ini tentang JSHint .
PointedEars


1

Jika Anda mencoba menjalankan JSHint di WebStorm dengan Mocha, seperti saya, masuk ke:

WebStorm> Preferensi> Bahasa & Kerangka> JavaScript> Alat Kualitas Kode> JSHint

Gulir ke bawah ke "Lingkungan" dan pastikan Anda telah memilih kotak centang untuk mengaktifkan "Mocha" yang akan menyiapkan definisi untuk JSHint untuk Mocha untuk Anda.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.