Const kullanıyorsam neden JSHint uyarı veriyor?


316

Bu const kullanırken aldığım hata:

<error line="2" column="1" severity="warning" message="&apos;const&apos; is available in ES6 (use esnext option) or Mozilla JS extensions (use moz)." source="jshint.W104" />

Kodum şöyle görünüyor:

const Suites = {
    Spade: 1,
    Heart: 2,
    Diamond: 3,
    Club: 4
};

Kod iyi çalışıyor JSHint beni her zaman uyarıyor.


Ben metinde herhangi bir soru görmüyorum, ama muhtemelen sen zaten Yanıtım: "use esnext option". Ve neden? Bu hata mesajı açık değil mi? conststandart JS değildir (henüz).
Teemu

5
veya jshint yerine eslint kullanın
Rakka Rage

Yanıtlar:


557

ECMAScript 6 gibi özelliklere constgüvenirken, JSHint'in gereksiz uyarıları artırmaması için bu seçeneği ayarlamanız gerekir.

/ * jshint esnext: true * / ( 2015.12.29'u düzenle : sözdizimi @ Olga'nın yorumlarını yansıtacak şekilde güncellendi )

/*jshint esversion: 6 */

const Suites = {
    Spade: 1,
    Heart: 2,
    Diamond: 3,
    Club: 4
};

Bu seçenek, adından da anlaşılacağı gibi JSHint'e kodunuzun ECMAScript 6'ya özel sözdizimi kullandığını bildirir. http://jshint.com/docs/options/#esversion

2017.06.11'i düzenle : bu cevaba göre başka bir seçenek ekledi .

Satır içi yapılandırma tek bir dosya için iyi çalışır, ancak .jshintrcprojenizin kökünde bir dosya oluşturarak ve oraya ekleyerek bu ayarı tüm proje için etkinleştirebilirsiniz .

{
  "esversion": 6
}

1
Bu işe yarıyor ... eminim biraz komut satırı parm olurdu! ... ipucu ipucu jshint halk
Scott Stensland

9
Belgeler artık Warning This option has been deprecated and will be removed in the next major release of JSHint. Use esversion: 6 instead.Webstorm yerleşik eklentim yeni seçeneği tanımıyor olmasına rağmen diyor . İkisini de belirledim.
Olga

5
Benim için .jshintrc değil .jshint, jshint sürümlerinde farklılıklar olup olmadığından emin değilim
teknopaul 15:17

Hata. Aynen öyle. Düzeltildi.
James Hibbard

1
O zaman Atom'unuzu yeniden başlatın, eğer durum buysa
Vitor Braga

280

Bu ayarı tüm çözüme uygulamak için uygulamanızın köküne aşağıdaki içeriğe sahip .jshintrc adlı bir dosya ekleyebilirsiniz :

{
    "esversion": 6
}

James'in cevabı , her dosya /*jshint esversion: 6 */için bir yorum ekleyebileceğinizi önerir , ancak birçok dosyayı kontrol etmeniz gerekiyorsa gerekenden daha fazla iştir.


1
Bunu kullanmak için bir yapılandırma var mı? Benim jshint sadece içinde ne olduğunu görmezden geliyor .jshintrc.
Ethan Yang

1
@EthanYang, Hayır. Ek yapılandırma yok. Dosyanın JSHint tarafından bulunabildiğinden emin olun. Dokümanlar'dan:JSHint will start looking for this file in the same directory as the file that's being linted. If not found, it will move one level up the directory tree all the way up to the filesystem root. (Note that if the input comes from stdin, JSHint doesn't attempt to find a configuration file)
Zanon

59

Aynı uyarıyı bir ihracat bildirimi kullanırken aldım. VS Kodu kullanıyorum ve Wenlong Jiang'ın çözümüne benzer bir yaklaşım kullandım.

  1. Kullanıcı ayarları
  2. JSHint yapılandırması
  3. "jshint.options": {} (Düzenle)
  4. Kullanım çift tırnak belirtirken"esversion"

    Veya bu snippet'i Kullanıcı Ayarları'na kopyalayın:

    "jshint.options": {
      "esversion": 6,
    }

.jshintrcDüzenleyiciniz için global jshint ayarlarını yapılandırmak istiyorsanız dosya oluşturmak gerekli değildir


8
Teşekkür ederim. Görsel stüdyo kodunu kullananlar için kesinlikle en iyi cevap. Ref için, (Mac :) "Kod"> Tercihler> Ayarlar aracılığıyla Kullanıcı Ayarları.
CopyJosh

1
Bu ek çözüm için teşekkür ederim. çok yararlı.
dprogramz

41

VSCode kullanıyorsanız:

1.

  • Tercihlere git -> ayarlar ( cmd + ,)
  • Tip jshint.optionsarama çubuğuna
  • Fareyle üzerine gelin ve kalem simgesini tıklayın
  • Şimdi sağ tarafa eklenmiştir.
  • "esversion": 6Seçenekler nesnesine ekleyin .

2.

Veya bunu kullanıcı ayarlarınıza ekleyin:

"jshint.options": {
    "esversion": 6
}

[UPDATE] yeni vscode ayarları

  • Tercihlere git -> ayarlar ( cmd + ,)
  • yazın jshintaramaya

VSCode Ayarları

  • adımla devam et 2.

32

Bunu düzeltmek için yaşları harcadım. Her çözüm 'ayar seçenekleri' hakkında konuşur. Bunun ne anlama geldiğini bilmiyorum. Sonunda anladım. Dosyanın üst kısmına yorum yapılmamış bir satır ekleyebilirsiniz /*jshint esversion: 6 */.

Çözüm


24
Bulduğum gibi, bu şekilde yapmanın tek sorunu, kullandığınız her dosyanın üstüne yorum eklemeniz gerektiğidir. Daha iyi bir çözüm, uygulamanızın kök klasöründe yeni bir dosya oluşturmak .jshintrcve daha sonra dosyaya aşağıdaki kodu eklemek{ "esnext": true }
Josh Pittman

17
{ "esnext": true }artık kullanımdan kaldırıldı . Şimdi { "esversion": 6 }bunun yerine kullanmalısınız .
cybersam

3
JSHint'in eski bir sürümünü kullanmalıyım, çünkü sadece kullanarak "esnext": truebunu çözebildim. "esversion": 6etkisi yoktu.
Joncom

4
Sonra JShint 😉'nizi yükseltin
Cyril

18

Jvers seçeneklerinde 6: yönlendirme belirtebilirsiniz . Lütfen resme bakın. Grunt-katkıda-jshint eklentisi kullanıyorum.

resim açıklamasını buraya girin


2
Bu bir Grunt kullananlarda işe yarar. Bunu gruntfile.js
JoeTidee'ye

1
Teşekkür ederim, benim için bir cazibe gibi çalıştı.Özel sayfalarda dosya (lar) ı ve ayrı ayrı uygulanmasını görmezden gelmenize gerek yok
sg28

3

ECMAScript 6'yı kullanmaya başladığınızda IDE'niz tarafından atılan bu hata.

İki seçenek vardır:

yalnızca bir dosyanız varsa ve es6'yı kullanmak istiyorsanız, dosyanın üst kısmına aşağıdaki satırı ekleyin.

/*jshint esversion: 6 */

Veya js dosyanız varsa veya herhangi bir çerçeve kullanıyorsanız (nodejs express gibi) .jshintrckök dizininizde yeni bir dosya oluşturabilir ve dosyaya aşağıdaki kodu ekleyebilirsiniz:

{
    "esversion": 6
}

Her proje için es6 sürümünü daha sonra kullanmak istiyorsanız IDE'nizi yapılandırabilirsiniz.


2

Package.json içinde Jshint'e es6'yı böyle kullanmasını söyleyebilirsiniz

"jshintConfig":{
    "esversion": 6 
}

Yanıt Nisan 2020'de Visual Studio Code
ArifMustafa


1

Grunt yapılandırmasını kullanıyorsanız, aşağıdaki adımları izlemeniz gerekir

Jshint'teki uyarı mesajı:

resim açıklamasını buraya girin

Çözüm:

  1. Jshint seçeneklerini ayarlayın ve .jshintrc.js dosyasını eşleyin

resim açıklamasını buraya girin

  1. Bu dosyadaki .jshintrc.js dosyasını oluşturun, aşağıdaki kodu ekleyin
{  
  "sürüm": 6  
} 

Bunu yapılandırdıktan sonra, Tekrar çalıştır Uyarıyı atlayacak,

resim açıklamasını buraya girin


0

Şu içeriğe sahip jshint_opts adlı bir dosya oluşturun: {"esversion": 6}

Sonra jshint'i şu komut satırı ile çağırın:

jshint --config jshint_opts lib / *. js


0

Mac'te SublimeText 3 için:

  1. Kök dizininizde (veya istediğiniz yerde) bir .jshintrc dosyası oluşturun ve sürümü belirtin:
    # .jshintrc
    {
      "esversion": 6
    }
  1. SublimeLinter kullanıcı ayarlarında az önce oluşturduğunuz dosyanın pwd'sine bakın (Sublime Text> Tercih> Paket Ayarları> SublimeLinter> Ayarlar)
    // SublimeLinter Settings - User
    {
      "linters": {
        "jshint": {
          "args": ["--config", "/Users/[your_username]/.jshintrc"]
        }
      }
    }
  1. SublimeText'ten çıkın ve yeniden başlatın

0

Mayıs 2020 İşte bulduğum basit bir çözüm ve projem c: dizininin içinde bir yerde ise tüm projelerim için çözülecek, yeni dosya .jshintrc oluşturun ve C dizinine kaydedin bu .jshintrc dosyasını açın ve yazın { "esversion": 6}ve bu o. uyarılar kaybolmalı, d dizininde de çalışacaktır

resim açıklamasını buraya girin

resim açıklamasını buraya girin evet ayrıca bu ayarı yalnızca belirli bir proje için, projenizin kökünde bir .jshintrc dosyası oluşturup ekleyerek etkinleştirebilirsiniz. { "esversion": 6}


0

Kök dizininde.jshintrc dosya oluşturun ve orada en son js sürümünü ekleyin: ve asi sürümü: (noktalı virgül kullanmaktan kaçınmanıza yardımcı olacaktır)"esversion": 9"asi": true

{
    "esversion": 9,
    "asi": true
}

0

Bunu Dreamweaver CC 2018'de düzeltmek için tercihlere gittim, kural kümesini düzenledim - JS'yi seçin, değişiklikleri düzenleyin / uygulayın, "esnext" yi bulun ve yanlış ayarı true olarak değiştirdim. Saatler süren araştırmalardan sonra benim için çalıştı. Umarım başkalarına yardımcı olur.


-1

Sublime Text 3 kullanıyorsanız:

  • Git Tercihler > - Ayarlar
  • Preferences.sublime-settings — Kullanıcı "sürüm" ekle altında : 6

-2

Bu hatayı çözmek için Dreamweaver'ın yeni bir sürümünde

  • Düzenle-> Tercih-> Linting'e gidin
  • Ve js kural setini ve geçmişini düzenle

    "jshintConfig": {"sürüm": 6}

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.