2015-07-04 16 views
6

Ich habe Dreamweaver CC 2015 installiert und festgestellt, dass ich MYRIAD-Fehler in meinen JavaScript-Dateien arbeiten. Auch ich habe MYRIAD Fehler in importierten JavaScript-Bibliotheken, einschließlich jQuery.Seltsame Javascript-Validierung in Dreamweaver CC

Die wichtigsten „Fehler“ ist dies eine am Anfang jeder Arbeitsfunktion:

Missing "use strict" statement. 

Es ist ganz gut funktioniert ohne „use strict“ und ich habe noch nie diese Aussage irgendwo gesehen.

Eine weitere seltsame ist:

Extending prototype of native object: 'Array'. 

Hier ist der Code, der die Warnung auslöst:

Array.prototype.sortOn = function(key){ 
    this.sort(function(a, b){ 
     if(a[key] < b[key]){ 
      return -1; 
     }else if(a[key] > b[key]){ 
      return 1; 
     } 
     return 0; 
    }); 
}; 

So meine Optionen sind:

  1. Ditch Dreamweaver und andere IDE verwenden (das Schlimmste, weil es perfekt für meine Zwecke funktioniert - ich bin der einzige HTML/CSS/JS/PHP/MySQL Entwickler in meinem Projekt.
  2. Beheben Sie alle Fehler wie in Dreamweaver, weil es einen guten Punkt hat. Dann bitte erklären warum? Ich bin OK mit dem Ändern von "==" zu "===", Hinzufügen von "Var" vor Variablendeklarationen, nicht mit "return" nach "if" ohne geschweifte Klammern, aber das "use strict" Ding stört mich.
  3. Tweak die JavaScript-Validierung, so dass nur kritische Fehler angezeigt werden - die beste Option für mich - aber ich weiß nicht, wie es geht?

Was ist die beste Option zu gehen? Jede Hilfe sehr geschätzt.

Antwort

11

Hier ist, was ich herausgefunden habe.

Das Problem war, dass ich nicht wusste, JSHint und JSLint-Lösungen für die Validierung von Javascript. JSHint ist in Dreamweaver CC integriert und lässt sich leicht konfigurieren, sofern Sie wissen, was zu tun ist.

Normalerweise JSHint has three ways to tweak it, aber sie funktionieren nicht in der Dreamweaver-Umgebung.

Was sollten Sie tun, ist:

  • Sie im oberen Menü wählen Sie Bearbeiten -> Einstellungen (Dreamweaver -> Einstellungen auf dem Mac)
  • Wählen Sie "Fusseln" von der Seite Menü.
  • Wählen Sie "JS" und klicken Sie auf "Bearbeiten und Änderungen speichern".
  • Die Datei JS.jshintrc wird in Dreamweaver geöffnet.
  • Bearbeiten Sie die Datei wie gewohnt (see JSHint options) und speichern Sie sie.

In meinem speziellen Fall änderte ich dies:

"strict":false, 
"undef":false, 
"unused":false 

... was bedeutet, dass ich überall nicht setzen „use strict“ und können Definitionen und Verwendung von Variablen in verschiedenen Dateien führen . JA, ich benutze keine Wrapper-Funktionen und verwende viele globale Variablen.Ja, ich weiß, dass es schlecht ist, aber Refactoring ist nicht die höchste Priorität in meinem Zeitplan.

Natürlich werde ich alle drei Optionen auf "wahr" ändern und alle meine JS-Dateien umgestalten, um den Standards zu entsprechen, wenn die Zeit gekommen ist.

+1

Dank. Dieses Problem ist nicht sehr schön zu jQuery, – Mistergreen

+2

Wie man Validierung für erwartet diese '===' sah '==' this –

+0

Akash Kumar, ändern Sie einfach "eqnull": false zu "eqnull": true –

0

Das Deaktivieren der "undef" Prüfung ist ein Vorschlaghammer, da JSHint dann alle Tippfehler von Variablen und Funktionen ignoriert. Sie werden den Tippfehler erst zur Laufzeit finden, was lästig und zeitverschwendend ist.

vielmehr die „undefiniert“ -Nachrichten vollständig als deaktivieren, ich habe JSHint Inline-Richtlinien wurde mit in der Nähe der Spitze meiner Js-Dateien. Zum Beispiel:

/* globals myGlobalVar, myGlobalFunction */ 
var myLocalVar = myGlobalVar; 
myGlobalFunction(); 

Mit der Globals-Direktive in der Datei, wird JSHint nicht markiert myGlobalVar oder myGlobalFunction() als undefiniert Fehler. Die Verwendung von Inline-Direktiven "globals" hat den zusätzlichen Vorteil, die Abhängigkeiten zwischen Ihren .js-Dateien zu dokumentieren.

Lesen Sie mehr über JSHint Inline-Richtlinien hier:

http://jshint.com/docs/#inline-configuration