JSLintを使用したいのですが、フィルタリングされていないソース コードにアクセスできるツールには注意が必要です。オフライン バージョンはありますか、またはlint
JavaScript オフラインの「エラー チェック」を行う同様のツールは他にありますか?
編集: GUI を備えたもので、コマンド ライン インターフェイスの代わりに、エラーのスタイル付きリストを表示しますか?
JSLintを使用したいのですが、フィルタリングされていないソース コードにアクセスできるツールには注意が必要です。オフライン バージョンはありますか、またはlint
JavaScript オフラインの「エラー チェック」を行う同様のツールは他にありますか?
編集: GUI を備えたもので、コマンド ライン インターフェイスの代わりに、エラーのスタイル付きリストを表示しますか?
JSLint Web インターフェイスが気に入った場合は、ローカル フォルダーに対してFile
>Save Page As...
およびSave as type:
Web Page, complete
(Firefox では、Internet Explorer での実行は若干異なる場合があります) を実行できます。
名前を に変更してjslint.htm
、スペースなしで 8.3 未満にします。
ローカルに保存すると動作するようです。
三つのこと:
JSLint は、WSH または Rhino を使用してオフラインで実行できます。
http://www.jslint.com/lint.html#try
編集: この質問がされてから 2 年間で、JSLint は Rhino と WSH のサポートを終了しました。コードの lint に興味がある人は、 JSHintもチェックすることをお勧めします。これは JSLint のフォークであり、オリジナルよりも柔軟であることを目的としていますが、たまたま Node、Rhino、および WSH (もちろんブラウザーに加えて) もサポートしています。
はい:
基本的に、組み込みの JavaScript コンパイラを実行する必要があるだけですjslint.js
。
JavaScript Lintと呼ばれる別の JS Linter があり、オンライン バージョンとダウンロード可能なコマンド ライン バージョンの両方があります。いつもダウンロード版を使っています。フックの一部としてSVNに統合することを考えていました。より多くのオプションがあり、より多くのものを検出するように見えるため、JSLint よりも気に入っています。ツールキットなどのために、特定の識別子を定義済みとして扱うように構成できます。これにより、未定義の変数の使用をチェックできますが、これは JSLint ではできないと確信しています。
Java 環境を使用している場合は、私のjslint4javaツールが役立つことがあります。これはコマンド ライン バリアントで提供され、ant スクリプトに統合することもできます。私はそれらが苦手なので、GUIはありません。:-)
YSlow for Firebugにはこの機能が組み込まれています
TextMate を使用している場合は、JSLint を実行してグラフィカル ウィンドウに出力を表示するバンドルを作成しました。すべて自己完結型です。それを使用するために他に何もインストールする必要はありません:
Cory Bennet は、コマンドライン JSLint に関する良い投稿をしています。セットアップの大部分は、SpiderMonkeyを機能させるためのものです。Linux を実行している場合はそれほど悪くはありません。Windows とCygwinを使用している場合は、少し難しくなります。ここでは、Rhino ランタイムとのさらなる議論と比較を示します。
更新: 2013.11 - コマンドラインで node.js を使用している場合 (なぜ使用しないのですか?)、jslintと新しいeslintの両方を実行できます。[NB: 私はバグレポートとテストコードを eshint に寄稿しました。
Google Closure Linterを試してください。JSLint よりも多くの機能も備えています。
ブラウザでダウンロードする代わりに、ソースを直接ダウンロードすることもできます。これには、バージョン管理システムでそれらを更新し、コメント付きのソース コードを読み取ることができるという利点があります。
git clone https://github.com/douglascrockford/JSLint.git
これにより、HTML と JS のソース ファイルが得られますが、そのままでは使用できません。のビルド プロセスに従いますREADME
。簡単に言えば、git clone
Douglas Crockford の他の 2 つの JS プロジェクトを作成し、3 つすべての git リポジトリからいくつかの JS ファイルを連結 (および最小化)する必要がありますweb_jslint.js
。
YUI Compressor を使用して、次のようにしました。
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
次にjslint.html
、ブラウザで開きます。
すばらしい Yahoo ウィジェットがあります。
http://ajaxian.com/archives/jslint-multi
これはオープン ソースです。もし偏執的であれば、コードを監査できます。
(出典: googlecode.com )
すでに ruby gem を使用している場合は、jslint gem を 1 つのコマンドでインストールできます: http://rubygems.org/gems/jslint
デプロイ スクリプトに Node.js 検証コードを含む JSLint を使用して、サイトを壊す可能性のあるコードを誤ってプッシュしないようにしています。後でカスタマー サポートの問題を処理する時間を大幅に節約できます。
TextMate を使用している場合、JSLintMateバンドルにはシンプルなインターフェースがあり、 JSLint とJSHintの両方をサポートし、さまざまな方法でカスタム オプションを設定できます (たとえば、プロジェクトごとの構成ファイル、すべてのプロジェクトにわたるグローバル オプション)。
JSLint 自体は JavaScript で記述されているため、HTML および参照されている JavaScript ファイルをローカルにコピーすることで、オフラインで実行できます。IE7の「名前を付けて保存...」「Webページ、完全」機能はこれをうまく行います。
Crockford が JSLint.com に持っているものを再現するのはとても簡単です。JSLint.com のオンライン バージョンの .jsは、いくつかのファイルの縮小された集合体であり、そのようなADSAFE
ものなど、よくわからないオーバーヘッドが含まれています。代わりに、最も単純なケース ラッパーに分解しましょう。
これは、同じディレクトリでjslint.js (現在、JSLint の最新バージョンはgithub の生のテキストとしてここにあります) を探し、JSLint.com が現在行っているのと同様の方法で起動する Web ページのコードです。
<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>
GUI をよりグーイーなものにするかどうかは、ことわざの読者次第ですが、これは、JSLint サイトと同様に報告されています。