2012-01-21 9 views

Respuesta

2

no se puede hacer sin cambiar el archivo JavaScript que impulsa JSLint.

Para mí, la forma de la función es una práctica de trabajo malhumorada, por lo tanto no puede obligar a otros.

No todo el mundo necesita combinar y minificar, pero incluso si lo hiciera combinaría el código que aplicaba las mismas reglas, por lo tanto, una declaración de archivo sería suficiente.

Aunque jshint tiene exactamente la característica que necesita. La última jslint ahora es más avanzada que jshint, detecta más debilidades y se adapta a códigos más complicados. Me gusta jshint pero no está al día con jslint.

14

Según Crockford's post, usted querrá para envolver todo en una función ...

(function() { 
    "use strict"; 
    // the rest of your file goes here... 
}()); 

También es posible usar jshint lugar, que tiene una opción de "globalstrict" que puede hacer exactamente lo que está preguntando sin tener que envolver todo en una función

+2

"Si un archivo con un 'uso estricto'; preámbulo ha descuidado código anexado a él, el código descuidado será procesada tan estrictas y, probablemente, se producirá un error." Aquí es cuando querrás ponerlo en una función. No todo el tiempo. Todo mi código es estricto, así que no me sirve. –

+0

¿Ha revisado jshint como le recomendé? –

0

La solución que encontré para esto fue crear un archivo de línea único con "use strict"; y nada más

Hacer que el primer archivo en el paquete de concatenación, agregarlo a JSLint de lista de exclusión, conmutar el descuidado = true pragma

Puede haber algunos efectos secundarios alrededor de no recoger código descuidado, pero mi entendimiento de los documentos es que solo comprueba el "uso estricto"; línea

-3

Aquí hay un truco para suprimir "Utilice la forma de función de 'use strict'."

$ uname -a 
    Darwin 13.0.0 Darwin Kernel Version 13.0.0 
  1. averiguar donde su distribución JSLint es.

    $ which jslint 
    /usr/local/bin/jslint 
    $ ls -l /usr/local/bin/jslint 
    lrwxr-xr-x 1 root admin 40 11 Feb 2013 /usr/local/bin/jslint -> ../lib/node_modules/jslint/bin/jslint.js 
    $ cd /usr/local/lib/node_modules/jslint/ 
    $ ls 
    LICENSE  README.md lib  package.json 
    Makefile bin  node_modules 
    
  2. Comentario la advertencia.

    $ sudo vim lib/jslint.js 
    
    search for 'function_strict' 
    comment out the line 'warn('function_strict');' 
    note: the exact line might vary on some versions but just comment it out. 
    
  3. Si no funciona probablemente tiene varias versiones de JSLint instalada y que no han editado la correcta.

    sudo find/-name jslint.js 
    
Cuestiones relacionadas