JSLint est-il disponible pour une utilisation hors ligne?

Je voudrais utiliser JSLint , mais je me méfie des outils qui ont accès à mon code source non filtré. Existe-t-il une version hors ligne ou Existe-t-il un autre outil similaire qui effectue "lint error checking" pour JavaScript hors ligne?

Edit: {[7] } un avec une interface graphique et qui vous montre une liste stylée d'erreurs, au lieu d'une interface de ligne de commande?

23
demandé sur Peter Mortensen 2009-05-07 23:08:33

17 réponses

Si vous aimez l'interface web JSLint , vous pouvez faire File > Save Page As... et Save as type: Web Page, complete (dans Firefox, le faire dans Internet Explorer peut être légèrement différent) à un dossier local.

Je change le nom en jslint.htm pour l'obtenir sous 8.3 sans espaces.

Il semble fonctionner lorsqu'il est enregistré localement.

Trois choses:

  1. cela peut violer sa licence, bien que je laisse le Copyright intact et ne modifie aucun de son code, et techniquement mon navigateur Web déjà créé une copie de son site sur ma HD locale, donc je ne suis pas sûr que je suis en violation ou non et je ne suis pas un avocat donc je vais continuer à le faire jusqu'à ce que je reçois une lettre me disant d'arrêter.
  2. la page peut encore être en mesure d'envoyer votre code sur Internet, bien que la chance que cela soit possible soit très éloignée. Cela dit, les versions WSH ou Rhino pourraient probablement envoyer le code que vous soumettez à Internet plus facilement qu'une version d'une page Web enregistrée localement (si vous êtes paranoïaque).
  3. Vous aurez du retard sur les corrections de bugs ou les mises à jour que Douglas fait. Mais la même chose s'applique aux versions WSH ou Rhino si vous ne les mettez pas à jour régulièrement.
17
répondu Grant Wagner 2009-05-07 20:28:55

JSLint peut être exécuté hors ligne avec WSH ou Rhino:

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

Edit : au cours des deux années écoulées depuis que cette question a été posée, JSLint a supprimé le support pour Rhino et WSH. J'encourage toute personne intéressée à linting leur code à également vérifier JSHint . C'est un fork de JSLint qui vise à être plus flexible que l'original, mais qui prend également en charge Node, Rhino et WSH (en plus des navigateurs, bien sûr).

13
répondu Ben Blank 2011-05-13 17:38:28

Oui:

Fondamentalement, vous avez juste besoin d'un compilateur JavaScript intégré pour exécuter jslint.js.

11
répondu Jake McGraw 2012-05-19 19:24:49

Il y a un autre Linter JS, appelé JavaScript Lint , qui a des versions en ligne de commande en ligne et téléchargeables. J'utilise la version téléchargeable tout le temps. J'ai pensé à l'intégrer dans SVN dans le cadre d'un crochet. Je l'aime mieux que JSLint car il a plus d'options et semble détecter plus de choses. Il peut être configuré pour traiter certains identifiants comme prédéfinis, pour les boîtes à outils et autres, ce qui lui permet de vérifier l'utilisation de variables non définies, ce que je suis assez sûr que JSLint ne peut pas faire.

5
répondu rmeador 2009-05-07 19:54:40

Si vous êtes dans un environnement Java, vous pouvez trouver mon jslint4java outil utile. Il est livré dans une variante de ligne de commande, et peut également être intégré dans un script ant. Pas D'interface graphique, parce que je suce mal à ceux-ci. :-)

4
répondu Dominic Mitchell 2009-05-08 10:30:17

YSlow pour Firebug dispose de cette fonctionnalité intégrée dans

3
répondu David Snabel-Caunt 2009-05-07 19:11:02

Si vous utilisez TextMate, j'ai créé un bundle qui exécute JSLint et affiche la sortie dans une fenêtre graphique. Tout est autonome; rien d'autre ne doit être installé pour l'utiliser:

Voir JSLint.tmbundle sur GitHub

2
répondu Geoffrey Grosenbach 2010-10-06 17:38:08

J'ai un outil pour exécuter JSLint à partir de la ligne de commande avec le shell SpiderMonkey ou Rhino. Il comprend également un plugin pour Vim qui vous permet d'appuyer sur un bouton pour mettre en évidence automatiquement les lignes de problème lors de l'édition d'un fichier:

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

2
répondu Jesse Hallett 2012-05-19 19:27:15

Essayez le Linter de fermeture Google . Il a plus de fonctionnalités que JSLint, aussi.

1
répondu Janus Troelsen 2012-03-20 19:44:29

Cory Bennet a un bon post sur la ligne de commande JSLint. Une grande partie de votre configuration fonctionnera SpiderMonkey . Pas si mal si vous utilisez Linux; un peu plus difficile si vous utilisez Windows et Cygwin . Et voici quelques Plus de discussion et de comparaison avec les temps D'exécution de Rhino .

Mise à jour: 2013.11 - si vous utilisez node.js sur la ligne de commande (et pourquoi ne le feriez-vous pas?) vous pouvez exécuter à la fois jslint et le nouveau eslint. [NB: j'ai contribué bug-rapports et test-code à eshint.] Les deux sont way plus faciles à configurer que ce que j'ai ci-dessus....

1
répondu Michael Paulukonis 2013-11-28 16:01:00

Comme JSLint lui-même est écrit en JavaScript, vous pouvez l'exécuter hors ligne en copiant localement les fichiers HTML et JavaScript référencés. IE7 " Enregistrer sous...""page web, complète" fonctionnalité le fait très bien.

0
répondu Travis Beale 2009-05-07 19:37:10

Il y a un grand Widget Yahoo:

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

C'est open source, si vous êtes paranoïaque, vous pouvez auditer le code.

Le texte d'Alt http://jslint-multi-widget.googlecode.com/files/jslint_multi_v1_scrshot.png

0
répondu user89021 2010-04-08 12:51:18

J'ai JSLint avec le noeud.js validant le code dans mes scripts de déploiement pour m'assurer que je ne pousse pas accidentellement le code qui pourrait casser mon site. Il peut économiser beaucoup de temps à gérer les problèmes de soutien à la clientèle plus tard.

0
répondu Erik Giberti 2011-01-04 16:09:02

Si vous utilisez TextMate, le bundle JSLintMate a une interface simple, prend en charge JSLint et JSHint et vous permet de définir des options personnalisées de différentes manières (par exemple, un fichier de configuration par projet, des options globales pour tous les projets).

Captures d'écran JSLintMate

0
répondu Ron DeVera 2011-05-20 17:31:40

Si vous utilisez déjà ruby gems, vous pouvez installer JSLint gem en une seule commande : http://rubygems.org/gems/jslint

0
répondu lorefnon 2011-12-14 15:20:10

Au lieu de télécharger avec un navigateur, vous pouvez également télécharger directement les sources. Cela a l'avantage que vous pouvez les mettre à jour avec le système de gestion des versions, et lire le code source commenté.

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

Cela vous donne des fichiers source HTML et JS, mais vous ne pouvez pas les utiliser tels quels. Suivez le processus de construction dans README. En un mot, vous devez git clone deux autres projets JS de Douglas Crockford, puis concaténer (et minimiser) certains fichiers JS des trois dépôts git dans web_jslint.js.

Je l'ai fait comme ça, avec le compresseur 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

, Puis ouvrez jslint.html avec votre navigateur.

0
répondu cato_minor 2012-07-15 00:00:11

Il est assez facile de recréer ce que Crockford a sur JSLint.com. JSLint.com la version en ligne de la .js est un conglomérat minifié de quelques fichiers qui inclut des frais généraux que je ne comprends pas très bien, comme thatADSAFE stuff . Dépouillons - le à un emballage de cas le plus simple à la place.

Construire votre propre wrapper HTML pour JSLint:

Voici le code d'une page web qui recherchera jslint.js ( la dernière version de JSLint peut actuellement être trouvée dans github ici comme texte brut) dans le même répertoire et le feu loin d'une manière similaire à JSLint.com maintenant.

<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 un ancien billet de blog à moi .

C'est au lecteur proverbial de rendre l'interface graphique plus gluante, mais cela rapporte aussi bien que le site JSLint le fait maintenant.

exemple de sortie JSLint du code wrapper

0
répondu ruffin 2015-03-31 14:16:57