Pregunta

Me gustaría usar JSLint , pero desconfío de las herramientas que tienen acceso a mi fuente sin filtrar código. ¿Existe una versión fuera de línea o hay otra herramienta similar que hace " lint error de comprobación " para JavaScript sin conexión?

Editar: ¿Uno con una GUI y que muestra una lista de errores con estilo, en lugar de una interfaz de línea de comandos?

¿Fue útil?

Solución

Si le gusta la interfaz web JSLint , puede hacer File > Guardar página como ... y Guardar como tipo: Página web completa (en Firefox, hacerlo en Internet Explorer puede ser ligeramente diferente) a una carpeta local.

Cambio el nombre a jslint.htm para obtenerlo en 8.3 sin espacios.

Parece funcionar cuando se guarda localmente.

Tres cosas:

  1. Esto puede violar su licencia, aunque dejo el Copyright intacto y no modifico ninguno de sus códigos, y técnicamente mi navegador web ya creó una copia de su sitio en mi HD local, por lo que no estoy seguro de si Estoy en violación o no y no soy abogado, así que seguiré haciendo esto hasta que reciba una carta que me diga que pare.
  2. De alguna manera, la página aún puede enviar su código a Internet, aunque la posibilidad de que sea posible es muy remota. Dicho esto, las versiones de WSH o Rhino probablemente podrían enviar el código que envía a Internet más fácilmente que una versión en una página web guardada localmente (si es paranoico).
  3. Te retrasarás en cualquier corrección de errores o actualizaciones que Douglas haga. Pero lo mismo se aplica a las versiones de WSH o Rhino si no las actualiza regularmente.

Otros consejos

JSLint se puede ejecutar sin conexión con WSH o Rhino:

http://www.jslint.com/lint.html#try

Editar : en los dos años desde que se hizo esta pregunta, JSLint ha dejado de admitir Rhino y WSH. Recomiendo a cualquiera que esté interesado en incluir su código que también consulte JSHint . Es una bifurcación de JSLint que pretende ser más flexible que el original, pero también es compatible con Node, Rhino y WSH (además de los navegadores, por supuesto).

Sí:

Básicamente, solo necesita un compilador JavaScript incorporado para ejecutar jslint.js .

Hay otro JS Linter, llamado JavaScript Lint , que tiene versiones de línea de comandos tanto en línea como descargables. Yo uso la versión descargable todo el tiempo. He estado pensando en integrarlo en SVN como parte de un enlace. Me gusta más que JSLint porque tiene más opciones y parece detectar más cosas. Se puede configurar para tratar ciertos identificadores como predefinidos, para kits de herramientas y similares, lo que le permite verificar el uso de variables indefinidas, lo que estoy bastante seguro de que JSLint no puede hacer.

Si está en un entorno Java, puede encontrar útil mi herramienta jslint4java . Viene en una variante de línea de comando y también se puede integrar en un script de hormiga. Sin interfaz gráfica de usuario, porque soy un asco en esos. :-)

YSlow for Firebug tiene esta característica incorporada

Si usa TextMate, he creado un paquete que ejecuta JSLint y muestra el resultado en una ventana gráfica. Todo es autónomo; no es necesario instalar nada más para usarlo:

Ver JSLint.tmbundle en GitHub

Tengo una herramienta para ejecutar JSLint desde la línea de comandos con SpiderMonkey shell o Rhino . También incluye un complemento para Vim que le permite presionar un botón para automáticamente resalte las líneas problemáticas al editar un archivo:

http://github.com/hallettj/jslint.vim/

Pruebe el Google Closure Linter . También tiene más funciones que JSLint.

Cory Bennet tiene una buena publicación en la línea de comandos JSLint . Gran parte de su configuración hará que SpiderMonkey funcione. No está tan mal si estás ejecutando Linux; un poco más difícil si está utilizando Windows y Cygwin . Y aquí hay algunos más discusión y comparación con los tiempos de ejecución de Rhino .

ACTUALIZACIÓN: 2013.11 - si está utilizando node.js en la línea de comandos (¿y por qué no lo haría?) puede ejecutar ambos jslint y el nuevo eslint . [Nota: he contribuido con informes de errores y código de prueba para insinuar.] Ambos son mucho más que los que tengo arriba ...

Dado que JSLint está escrito en JavaScript, puede ejecutarlo sin conexión copiando el HTML y los archivos JavaScript referenciados localmente. IE7 '' Guardar como ... '' " página web, completa " La función hace esto bien.

Hay un gran widget de Yahoo:

http://ajaxian.com/archives/jslint-multi

Es de código abierto, si eres paranoico puedes auditar el código.

texto alternativo http://jslint-multi-widget.googlecode.com /files/jslint_multi_v1_scrshot.png

Tengo JSLint con el código de validación Node.js en mis scripts de implementación para asegurarme de no insertar accidentalmente código que pueda romper mi sitio. Puede ahorrar mucho tiempo manejando los problemas de atención al cliente más adelante.

Si está utilizando TextMate, el paquete JSLintMate tiene una interfaz simple, es compatible con JSLint y JSHint , y le permite configurar opciones personalizadas de varias maneras (por ejemplo, un archivo de configuración por proyecto, opciones globales en todos los proyectos) .

Capturas de pantalla de JSLintMate

Si ya usa ruby ??gems, entonces puede instalar jslint gem en un comando: http://rubygems.org/gems/jslint

En lugar de descargar con un navegador, también puede descargar directamente las fuentes. Esto tiene la ventaja de que puede actualizarlos con el sistema de versiones y leer el código fuente comentado.

git clone https://github.com/douglascrockford/JSLint.git

Esto le proporciona archivos fuente HTML y JS, pero no puede usarlos tal como están. Siga el proceso de compilación en README . En pocas palabras, debe git clone otros dos proyectos JS de Douglas Crockford, luego concatenar (y minimizar) algunos archivos JS de los tres repositorios git en web_jslint.js .

Lo hice así, con el compresor YUI:

cat ../ADsafe/adsafe.js ../JSON-js/json2.js intercept.js jslint.js > /tmp/web_jslint.uncomp.js
java -jar ../../yuicompressor-2.4.7.jar /tmp/web_jslint.uncomp.js > web_jslint.js

Luego abra jslint.html con su navegador.

Es bastante fácil recrear lo que Crockford tiene en JSLint.com. La versión en línea de JSLint.com de .js es un conglomerado reducido de algunos archivos que incluye algunos gastos generales I no entiendo del todo, como que ADSAFE cosas . En lugar de eso, reduzcamos a una envoltura de caja más simple.

Construyendo su propio contenedor HTML para JSLint:

Aquí está el código de una página web que buscará jslint.js ( la última versión de JSLint se puede encontrar actualmente en github aquí como texto sin formato ) en el mismo directorio y dispara de manera similar a como lo hace ahora JSLint.com.

<html>
    <head>
        <script src="jslint.js"></script>

        <script>
            function jslintalizeMe()
            {
                var i, divOut, errs, errsMsg = "";

                divOut = document.getElementById("errors");
                divOut.innerHTML = "";

                if (!JSLINT(document.forms[0].elements[0].value))
                {
                    errs = JSLINT.errors;
                    for (i=0; i < errs.length; i++)
                    {
                        err = errs[i];
                        if (null !== err)
                        {
                            if (undefined !== err.id)
                            {
                                errsMsg += "Error: " 
                                + err.code 
                                + " -- line " 
                                + err.line 
                                + " char " 
                                + err.character + "<br />"
                                + "    " 
                                + err.evidence + "<br />"
                                + "    " +
                                 err.reason + "<br /><br />\n";
                            }
                            else
                            {
                                errsMsg += err.reason;
                            }
                        }
                    }
                    divOut.innerHTML = errsMsg;
                }
            }
        </script>

    </head>

    <body>

        <form>
            <textarea rows="24" cols="80"
                placeholder="// Paste quality code here"></textarea>
            <br />
            <button onclick="jslintalizeMe();return false;">JSLint</button>
        </form>

        <div id="errors"></div>
    </body>
</html>

^ De una publicación de blog antigua de los míos .

Depende del lector proverbial hacer que la GUI sea más pegajosa, pero esto informa tan bien como el sitio JSLint ahora.

muestra de salida JSLint del código contenedor

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top