Pergunta

Eu gostaria de usar JSLint , mas eu estou desconfiado de ferramentas que têm acesso a minha fonte não filtrada código. Existe uma versão offline ou há outra ferramenta semelhante que faz "a verificação de erros lint" para JavaScript offline?

Editar:? Um com uma GUI e que mostra uma lista de estilo de erros, em vez de uma interface de linha de comando

Foi útil?

Solução

Se você gosta do JSLint interface web , você pode fazer File> Save Page As... e Save as type: Web Page, complete (no Firefox, fazê-lo no Internet Explorer pode ser ligeiramente diferente) para uma pasta local.

Eu mudar o nome para jslint.htm para obtê-lo sob 8.3, sem espaços.

Parece que funciona quando salvas localmente.

Três coisas:

  1. Isto pode violar sua licença, apesar de eu deixar de Direitos Autorais intacta e não modificar nada do seu código, e tecnicamente meu navegador web já criou uma cópia do seu site no meu HD local, por isso não tenho certeza se eu 'm em violação ou não e eu não sou um advogado, então eu vou continuar fazendo isso até eu receber uma carta dizendo-me para parar.
  2. A página pode de alguma forma ainda ser capaz de enviar o código para a Internet, embora a chance de ser possível, é muito remota. Dito isto, as versões WSH ou Rhino provavelmente poderia enviar o código que você enviar para a Internet mais fácil do que uma versão de uma página da web salvas localmente poderia (se você for paranóico).
  3. Você vai ficar atrás em quaisquer correções ou atualizações Douglas faz. Mas a mesma coisa se aplica às versões WSH ou Rhino se você não atualizá-los regularmente.

Outras dicas

JSLint podem ser executados offline com qualquer WSH ou Rhino:

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

Editar : Nos dois anos desde que esta pergunta foi feita, JSLint abandonou o suporte a Rhino e WSH. I incentivamos qualquer pessoa interessada em linting seu código para verificar também para fora JSHint . É um fork do JSLint que pretende ser mais flexível do que o original, mas também acontece para apoiar Node, Rhino, e WSH (além de navegadores, é claro).

Sim:

Basicamente, você só precisa de um compilador de JavaScript incorporado para jslint.js prazo.

Há um outro JS Linter, chamado JavaScript Lint , que tem ambas as versões de linha de comando on-line e para download. Eu uso a versão para download todos os tempos. Eu estive pensando sobre integrando-o SVN como parte de um gancho. Eu gosto melhor do que JSLint porque tem mais opções e parece detectar mais coisas. Ele pode ser configurado para tratar certos identificadores como pré-definidos, para kits de ferramentas e afins, o que lhe permite verificar se há uso de variáveis ??indefinidas, que eu tenho certeza que JSLint não pode fazer.

Se você estiver em um ambiente Java, você pode encontrar o meu jslint4java ferramenta útil . Ele vem em uma variante da linha de comando, e também pode ser integrado em um script ant. No GUI, porque eu chupar mal para aqueles. : -)

YSlow para Firebug tem esse recurso construído em

Se você usar TextMate, eu fiz um pacote que corre JSLint e exibe a saída em uma janela gráfica. É tudo auto-suficiente; necessidades nada mais para ser instalado para usá-lo:

Ver JSLint.tmbundle no GitHub

Eu tenho uma ferramenta para a execução de JSLint na linha de comando ou com o SpiderMonkey shell ou Rhino . Ele também inclui um plugin para Vim que permite que você pressionar um botão para automaticamente destacar as linhas problemáticas durante a edição de um arquivo:

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

Tente o Google Closure Linter . Ele tem mais recursos do que JSLint também.

Cory Bennet tem um bom post on-line comando JSLint . Grande parte da sua configuração estará recebendo SpiderMonkey trabalhando. Não é tão ruim se você estiver executando Linux; um pouquinho mais difícil se você estiver usando o Windows e Cygwin . E aqui estão algumas mais discussão e comparação com Rhino tempos de execução .

UPDATE: 2.013,11 - se você estiver usando node.js na linha de comando (? E por que não você) você pode executar tanto JSLint eo novo eslint . [NB:. I têm contribuído relatórios de erros e test-código para eshint] Ambos são modo fácil de configurar do que o que eu tenho acima ....

Desde si JSLint é escrito em JavaScript, você pode executá-lo fora de linha, copiando o HTML e referenciado JavaScript arquivos localmente. do IE7 "Salvar como ..." recurso "webpage, completa" faz isso muito bem.

Há uma grande Yahoo Widget:

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

É open source, se você é paranóico você pode auditar o código.

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

JSLint com Node.js validar código em meus scripts Implantar para garantir que eu não acidentalmente empurrar código que poderia quebrar o meu site. Pode guardar um monte de tempo de manipulação questões de suporte ao cliente mais tarde.

Se você estiver usando TextMate, o JSLintMate pacote tem uma interface simples, suporta tanto JSLint e JSHint , e permite que você defina opções personalizadas de várias formas (por exemplo, um arquivo de configuração por projeto, opções globais em todos os projetos) .

screenshots JSLintMate

Se você já usa pedras de rubi, então você pode instalar gem JSLint em um comando: http://rubygems.org/gems/jslint

Em vez de baixar com um navegador, você também pode fazer o download diretamente as fontes. Isto tem a vantagem de que você pode atualizá-los com o sistema de controle de versão, e ler o código-fonte comentou.

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

Isto dá-lhe arquivos de origem JS HTML e, mas você não pode usá-los como eles são. Siga o processo de construção em README. Em poucas palavras, você precisa git clone dois outros projetos JS de Douglas Crockford, então concatenar (e minimizar) alguns arquivos JS de todos os três repositórios git em web_jslint.js.

Eu fiz isso como esta, com o Compressor 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

Então jslint.html aberta com o seu browser.

É muito fácil de recriar o que Crockford tem sobre JSLint.com. versão online de JSLint.com dos js é um conglomerado minified de alguns arquivos que inclui alguns I sobrecarga não entendo muito bem, como esse material ADSAFE . Vamos tira-lo para baixo para um caso mais simples invólucro vez.

Construir seu próprio invólucro HTML para JSLint:

Aqui está o código para uma página web que vai olhar para jslint.js ( a última versão do JSLint atualmente pode ser encontrado no github aqui como texto simples ) no mesmo diretório e fogo afastado em uma forma similar como JSLint.com faz agora.

<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 um post antigo meu .

Cabe ao leitor proverbial para fazer a GUI mais pegajosos, mas esta relatórios, bem como o site JSLint faz agora.

amostragem de saída JSLint a partir do código wrapper

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top