JSLint Web サイトにアクセスせずに JavaScript ファイルをチェックしたいと考えています。
Windows 用のこのツールのデスクトップ バージョンはありますか?
16 に答える
http://www.jslint.com/lint.htmlから:
分析は、マシン上で実行されるスクリプトによって行われます。スクリプトはネットワーク経由で送信されません。
Konfabulator ウィジェットとしても利用できます。ウィジェットにファイルをドラッグ&ドロップして確認できます。ウィジェットをダブルクリックすると、ファイルを再確認できます。
また、 WSH コマンド ラインバージョンでも利用できます。
Rhino コマンド ラインバージョンでも利用できます。
または、JSLint はブラウザーで実行される JavaScript プログラムであるため、スクリプトを取得してローカルで実行することもできます。
マシンで JavaScript Lint を使用することもできます。
こちらから入手してください
JavaScript Lint
上記のサイトには、多くのエディター/IDE に統合する方法の説明があります。UltraEdit で使用していますが、うまく機能します。
上記サイトより
JavaScript Lint はいくつかの方法で実行できます。
Visual Studio、SciTE、または外部ツールをサポートするその他の IDE などの IDE に統合できます。JavaScript Lint がエラーを検出すると、IDE はエラーを含む行に直接移動します。
これは、Windows プログラマーが好む Windows エクスプローラーから実行できます。
コマンド ラインを使用してビルド システムに統合することも、Linux プログラマーであり、単純にコマンド ラインを好む場合もあります。
この古い質問への補遺: jslint.js の WScript バージョンは、他のコンパイラのエラー メッセージとは非常に異なるエラー メッセージを生成します。
それらを類似させたい場合、および stdin を使用してファイルを読み取るのではなく、コマンド ラインで .js ファイルの名前を指定できるようにする場合は、次のようにします。
WScript バージョンの jslint.js をダウンロードします。
jslint.js ファイルを編集します。一番下までスクロールして、これを見つけます:
(function(){if(!JSLINT(WScript.StdIn.ReadAll(),.....
それ(およびそれに続くすべて)を次のように置き換えます。
(function(){
var filename = "stdin";
var content= "";
if (WScript.Arguments.length > 0){
filename = WScript.Arguments(0);
var fso = new ActiveXObject("Scripting.FileSystemObject");
//var file = fso.GetFile(filename);
var fs = fso.OpenTextFile(filename, 1);
content = fs.ReadAll();
fs.Close();
fso = null;
fs = null;
} else {
content = WScript.StdIn.ReadAll();
}
if(!JSLINT(content,{passfail:false})){
WScript.StdErr.WriteLine("JSLINT");
for (var i=0; i<JSLINT.errors.length; i++) {
// sample error msg:
// sprintf.js(53,42) JSLINT: Use the array literal notation [].
var e=JSLINT.errors[i];
if (e !== null){
var line = (typeof e.line == "undefined")?'0':e.line;
WScript.StdErr.WriteLine(filename + '(' +line+','+e.character+') JSLINT: '+e.reason);
WScript.StdErr.WriteLine(' ' + (e.evidence||'').replace(/^\s*(\S*(\s+\S+)*)\s*$/,"$1"));
}
}}}());
この変更により、次の 2 つのことが行われます。
- lint を実行するファイルを、stdin としてではなく、コマンド ラインで指定できます。ファイルがまったく指定されていない場合でも、標準入力は機能します。
- ほとんどの C/C++ コンパイラに似た形式でエラー メッセージを出力します。
次に、cmd.exe プロンプトで、次の操作を実行できます。
cscript.exe jslint.js MyJavascriptModule.js
次のようなエラーメッセージが表示されます。
JSLINT
MyJavascriptModule.js(7,17) JSLINT: 'xml' is already defined.
var xml = new ActiveXObject("Microsoft.XMLHTTP");
MyJavascriptModule.js(10,5) JSLINT: 'xml' used out of scope.
xml.open("GET", url, true);
MyJavascriptModule.js(11,9) JSLINT: 'xml' used out of scope.
if (xml.overrideMimeType) {
MyJavascriptModule.js(12,9) JSLINT: 'xml' used out of scope.
xml.overrideMimeType('text/plain; charset=x-user-defined');
MyJavascriptModule.js(14,9) JSLINT: 'xml' used out of scope.
xml.setRequestHeader('Accept-Charset', 'x-user-defined');
MyJavascriptModule.js(17,5) JSLINT: 'xml' used out of scope.
xml.onreadystatechange = function() {
MyJavascriptModule.js(28,5) JSLINT: 'xml' used out of scope.
xml.send('');
MyJavascriptModule.js(34,16) JSLINT: Expected '{' and instead saw 'url'.
if (proxy) url = proxy + '?url=' + encodeURIComponent(url);
MyJavascriptModule.js(51,16) JSLINT: Expected '{' and instead saw 'url'.
if (proxy) url = proxy + '?url=' + encodeURIComponent(url);
これが古いものであることは知っていますが、JSLint がオープン ソースであり、github で利用可能であるとは誰も言及していません。https://github.com/douglascrockford/JSLint
含まれている HTML ページを使用するか、以下を使用して独自のインターフェイスを作成できます。
var options = {
browser : true,
plusplus : true,
unparam : true,
maxlen : 120,
indent : 4 // etc
};
if (JSLINT(myCode, options)) {
document.write('Passed!');
} else {
document.write('Failed! :(');
}
document.write('<ul>');
for (i = 0; i < JSLINT.errors.length; i++) {
document.write('<li><b>' + JSLINT.errors[i].line + ':</b> ' + JSLINT.errors[i].reason + '</li>');
}
document.write('</ul>');
ページをハードドライブに保存できますか?
JSLint4Javaは非常に優れていることがわかりました。プロジェクトのビルドに Ant を使用している場合は、Ant が提供する Ant タスクが特に便利です。
html ページをハード ドライブに保存し、使用する .js ファイルを同じ場所にダウンロードするだけです。それが JavaScript の美しさです。
この人が作成したツールを Visual Studio に統合できます。
必要のないオプションを無効にするだけです。
notepad++ を使用している場合は、JSLint プラグインが用意されています。
それを見つけて、notepad++ の Plugin Manager からインストールできます。
Visual Studio 2010 には適切な拡張機能があります。
jslint CLIオプションでのいくつかの回答(厳密にはWindows用ではありません)
MiniME は、便利なウィンドウでネイティブに実行される JSLint の代替手段です。
完全な開示、私はこれの背後にいます: http://www.toptensoftware.com/minimeこれは、縮小、難読化、および適切な lint スタイル チェックのセットを行います。
Node.js で実行される JSLint レポーター
最新情報を簡単に入手できます。
Node.jsをインストールします。
jslint-reporterを次の場所にインストールします。
C:\jslint-reporter
JSLint をダウンロードします。
C:\jslint-reporter>node wrapper.js --upgrade
テスト:
C:\Temp>node C:\jslint-reporter\wrapper.js missing_semicolon.js missing_semicolon.js:1:10:Expected ';' and instead saw 'console'. missing_semicolon.js:2:1:'console' was used before it was defined.
JSLint Node.js パッケージ
セットアップは簡単ですが、含まれている JSLint を最新の状態に保つためにパッケージの作成者に依存します。
Node.jsをインストールします。
Node.js のパッケージ マネージャーであるnpmを使用して、JSLint をインストールします。
C:\>npm -g install jslint
テスト:
C:\Temp>jslint missing_semicolon.js missing_semicolon.js #1 Expected ';' and instead saw 'console'. var x = 5 // Line 1, Pos 10
その他のソリューション
もちろん、JSLint を実行するには、Windows で動作するRhinoやその他の JavaScript 実装を使用することもできます。
CSE HTML Validatorには JSLint が含まれており、Windows デスクトップ マシンで実行されます。
ほとんどのブラウザーには「全体」ページを保存する機能があります。つまり、StyleSheets、JavaScript などのすべての外部ファイルもダウンロードされ、HTML ドキュメントに適切にリンクされます (通常、HTML ファイルの隣のフォルダーに配置されます)。したがって、ツールをオフラインで使用できることは間違いありません。