Jshint: Unterstützung für experimentelle Konfiguration hinzufügen

Erstellt am 30. Juli 2015  ·  29Kommentare  ·  Quelle: jshint/jshint

JSHint sollte experimentelle/instabile Funktionen über eine Konfiguration bereitstellen, die diesen Status für Verbraucher offensichtlich macht. Folgendes schlage ich vor:

.jshintrc Dateien:

{
  "experimental": {
    "expnt": true,
    "async": true
  }
}

Inline-Anweisungen:

// jshint.experimental expnt: true
/* jshint.experimental async: true */

Obwohl ich in den Beispielen vorhandene Vorschläge der Stufe 2 verwende, möchte ich den Konfigurationsmechanismus vor jeder bestimmten Option implementieren.

Ich habe das Schlüsselwort "experimental" gewählt, aber ich mag auch "instable", da es expliziter die Erwartung von Breaking Changes zwischen Major Releases kommuniziert. @jshint/core irgendwelche Gedanken dazu?

ES7 P2 Proposal

Hilfreichster Kommentar

async und await sind jetzt in Node 7.6 live. Gibt es hierzu Neuigkeiten ?

Alle 29 Kommentare

  • Sind experimental: true und experimental: false gültige Werte? (Um jede experimentelle Funktion zu aktivieren/deaktivieren) (Ich bin gegen experimental: true weil es das gleiche Problem von enforceall )
  • Bedeutet experimental esversion: 6 ?

    Wenn ja, bedeutet esversion: 5 experimental: false ?

Gibt es diesbezüglich Fortschritte?

Noch keine. Bitte lassen Sie es uns wissen, wenn Sie helfen möchten!

@jugglinmike Ich experimental: [] und eine experimentelle Funktion, die davon profitieren kann, zu machen?

@tschuy Großartig! Ich hatte gehofft, die Analyselogik der Konfiguration getrennt von einer bestimmten Funktion zu implementieren. Es wird ziemlich minimal sein, und Sie können die Option nur wie in der RC-Datei angegeben testen (im Grunde nur, dass "experimental": {} keine Fehler

Ich sehe, dass Sie in Ihrem Kommentar eckige Klammern verwendet haben. Ich bin mir nicht sicher, ob dies nur ein Tippfehler Ihrerseits war, aber die von mir beschriebene Lösung gibt dies als Objektwert an.

Ich löse mich vorerst auf - anscheinend war ich ein wenig zu optimistisch, als ich dieses Problem erstellt habe.

  1. @tschuy Arbeitest du noch an dieser Funktion?
  2. Was denken Sie, um experimental.option zuzulassen?
    z.B

    // jshint option: true, experimental.option: true
    

    was ist kürzer als

    // jshint option: true
    // jshint.experimental option: true
    

Hallo zusammen,
Darf ich fragen - gibt es Fortschritte zu diesem Thema?
Danke vielmals.

irgendwelche Neuigkeiten?

wir wollen ES7 einsetzen!

@phra Mit welcher Funktion von ES7 haben Sie Probleme bei der Verwendung von JSHint?

Ich habe es gerade auf der offiziellen Website versucht -> http://jshint.com/

Versuchen Sie, eine asynchrone ES7-Funktion zu schreiben: Sie nimmt das Schlüsselwort 'async' als Variable und gibt einen Fehler aus.

Es gibt keine solche Funktion in ES7/ES2016. Hier ist ein guter Blogbeitrag, der die Gesamtheit der ES7/ES2016-Funktionen auflistet: http://www.2ality.com/2016/01/ecmascript-2016.html

http://kangax.github.io/compat-table/esnext/

async-Funktion befinden sich in Stufe 3 der ES2017-Standardisierung, sie sind noch nicht in Stufe 4, aber babel unterstützt sie und sie sind SEHR cool und zeitsparend.

planen Sie, Unterstützung für sie zu implementieren?

JSCS unterstützt sie -> http://jscs.info/rule/disallowSpacesInFunctionExpression

Ich verwende jshint und jscs für QA und jshint hindert mich daran, meinem Projekt Babel mit Unterstützung für asynchrone Funktionen hinzuzufügen.

async-Funktion befinden sich in Stufe 3 der ES2017-Standardisierung

Die Funktion hat die Frist für ES2017 verpasst. JSHint ist bestrebt, Stufe 2 oder höher zu unterstützen, aber die Implementierung erfordert Personal und Zeit.

async und await sind nun fertig und im neuesten Entwurf der ES2017-Spezifikation.

Sie werden jetzt auch in Chrome und Firefox ausgeliefert. Können wir dieses Problem neu bewerten?

[aktualisieren] Der Vorschlag ist fertig und sollte daher im neuesten Entwurf des ES2017 erscheinen, tut es aber nicht. Nicht sicher, was das heißt.

[aktualisieren2] aha! gerade in die Spezifikation eingebunden: https://github.com/tc39/ecma262/pull/692

async und await sind jetzt in Node 7.6 live. Gibt es hierzu Neuigkeiten ?

Dieses Problem ist der endgültige Ort für die Verfolgung der Funktionsanfrage, also wenn
Es gab keine neuen Informationen, die Sie hier erwarten können. Würdest du
helfen gerne?

Immer noch keine Unterstützung für await/async? Traurig...

@xduseko , JSHint ist Open-Source-Software, die von einer freiwilligen Gruppe von Mitwirkenden verwaltet wird.

Jeder kann das Repository forken, async/await implementieren und einen Pull-Request mit Tests senden. Oder jeder kann warten, bis das Kernteam genügend freie Zeit findet, um es umzusetzen.

Was erhofften Sie sich von Ihrem Kommentar?

@xduseko Ja, ich stimme zu, es ist ein bisschen traurig, aber irgendwann wird es da sein - ich bin zuversichtlich. :gekreuzte Finger:
Wenn es eine Erleichterung ist; im Moment hat JSLint es auch nicht.

Wegen fehlendem async/await habe ich versucht, zu ESLint zu migrieren, aber das war ein großer Aufwand. Schließlich wechselte ich wieder zu JSHint. Jeder Linter – ich denke, JSHint ist immer noch der beste – stellt einen enormen Wert beim Schreiben von JavaScript dar.

Um zurechtzukommen, trainiere ich nur mein Auge, die hervorgehobenen async/await-Anweisungen in meiner IDE zu ignorieren. 🙈

Im Gegensatz zu @semmel kann ich mein Auge nicht trainieren, um asynchrone / wartende Fehler zu ignorieren. Wenn ich eine nicht deklarierte Variable verwende, bevor ich async/await verwende, wird kein Fehler für die nicht deklarierte Variable angezeigt, und das ist irgendwie ärgerlich.

Gibt es eine Möglichkeit, JSHint vorerst dazu zu bringen, asynchrone / wartende Dinge zu ignorieren?

@johnRivs Sie sollten zu eslint oder tslint migrieren .

Dies zu unterstützen.

DIES. IST. TOLLE.

Ist expnt Exponent ? Wenn ja, kann es bitte exponent heißen? Acrns dnt hlp unstdng.

Ist expnt Exponent? Wenn ja, kann es bitte als Exponent bezeichnet werden? Acrns dnt hlp unstdng.

@jugglinmike ^^

@mikemaccana Es war beabsichtigt, ja. Die Zeit für eine "instabile" Unterstützung für den Exponentiationsoperator ist jedoch vorbei (sie wird in der nächsten Nebenversion über esversion: 7 verfügbar sein), so dass wir diese spezielle Option nie implementiert sehen werden. Ihr Rat wird jedoch gut gehört, also danke!

Die eleganteste Lösung scheint derzeit das Suchen und Ersetzen von async durch /* async */ und umgekehrt, wenn Sie über die JSHint-Website validieren.

@patrickdark Das ist eine teilweise Problemumgehung für gh-2604, aber es berücksichtigt AwaitExpressions leider nicht.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen