2015-07-04 26 views
6

Ho installato Dreamweaver CC 2015 e ho scoperto che ho errori MYRIAD nei miei file JavaScript funzionanti. Inoltre, ho errori MYRIAD nelle librerie JavaScript importate, incluso jQuery.Strana convalida Javascript in dreamweaver CC

Il più importante "errore" è questo uno all'inizio di ogni funzione di lavoro:

Missing "use strict" statement. 

ha funzionato abbastanza bene senza "use strict" e non ho mai nemmeno visto questa dichiarazione da nessuna parte.

Un'altra strana è:

Extending prototype of native object: 'Array'. 

ecco il codice che provoca l'avvertimento:

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; 
    }); 
}; 

Quindi le mie opzioni sono:

  1. Ditch Dreamweaver e utilizzare un altro IDE (il peggio, perché funziona perfettamente per i miei scopi - sono il mio unico sviluppatore HTML/CSS/JS/PHP/MySQL nel mio progetto
  2. Correggere tutti gli errori come quelli che Dreamweaver vuole, perché ha un buon punto. Allora, per favore, spiegami perché? Sto bene cambiando "==" a "===", aggiungendo "var" prima delle dichiarazioni delle variabili, non usando "return" dopo "if" senza parentesi graffe, ma quella cosa "use strict" mi dà fastidio.
  3. Tweak la convalida JavaScript, quindi vengono visualizzati solo gli errori critici - l'opzione migliore per me - ma non so COME farlo?

Qual è l'opzione migliore per andare? Qualsiasi aiuto molto apprezzato.

risposta

11

Ecco cosa ho capito.

Il problema era che non ero a conoscenza delle soluzioni JSHint e JSLint per la convalida di javascript. JSHint è integrato in Dreamweaver CC ed è facilmente configurabile, purché tu sappia cosa fare.

Normalmente JSHint has three ways to tweak it, ma non funzionano nell'ambiente Dreamweaver.

Che cosa si dovrebbe fare è:

  • Dal menu principale selezionare Modifica -> Preferenze (Dreamweaver -> Preferenze su Mac)
  • scegliere "linting" dal menu laterale.
  • Selezionare "JS" e fare clic su "Modifica e salva le modifiche".
  • Il file JS.jshintrc verrà aperto in Dreamweaver.
  • Modifica il file come faresti normalmente (see JSHint options) e salva.

Nel mio caso specifico ho cambiato questo:

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

... il che significa che non devo mettere "use strict" in tutto il mondo e può lasciare le definizioni e l'utilizzo di variabili in file diversi . SÌ, non uso le funzioni wrapper e uso un sacco di globals.Sì, lo so che è male, ma il refactoring non è la massima priorità nel mio programma.

Ovviamente cambierò tutte e tre queste opzioni in "true" e rifatterò tutti i miei file JS in modo che siano conformi agli standard quando arriverà il momento.

+1

Grazie. Questo problema non è molto bello per jQuery, – Mistergreen

+2

Come attivare la convalida per il previsto questo '===' visto '==' questo –

+0

Akash Kumar, basta cambiare "eqnull": falso a "eqnull": vero –

0

La disattivazione del controllo "undef" è una mazza, poiché JSHint ignorerà tutti gli errori di battitura dei nomi di variabili e funzioni. Non troverai l'errore di battitura fino al tempo di esecuzione, che è fastidioso e spreco di tempo.

Anziché disabilitare completamente i messaggi "undef", ho utilizzato le direttive in linea JSHint nella parte superiore dei miei file .js. Per esempio:

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

Con la direttiva globali nel file, JSHint non segnerà myGlobalVar o myGlobalFunction() errori come non definiti. L'uso di direttive globali "globali" ha il vantaggio di documentare le dipendenze tra i tuoi file .js.

Leggi sulle direttive in linea JSHint qui:

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