我想檢查我的JavaScript文件,而不去JSLint網站。
是否有Windows的此工具的桌面版本?是否有離線版本的JSLint for Windows?
回答
從http://www.jslint.com/lint.html:
的分析是通過你的機器上運行腳本 完成。您的腳本 不通過網絡發送。
它也可作爲Konfabulator widget。您可以通過將 拖動並放在 小部件上來檢查文件。您可以通過 重新檢查該文件,然後雙擊該小部件。
它也可在WSH Command Line版本。
它也可在Rhino Command Line版本。
或者因爲JSLint是一個在瀏覽器中運行的JavaScript程序 - 您可以獲取腳本並在本地運行它。
你能把頁面保存到你的硬盤嗎?
只需將html頁面保存到硬盤,然後將它使用的.js文件下載到相同的位置即可。這就是JavaScript的美妙之處。
大多數瀏覽器都可以保存「整個」頁面,這意味着所有外部文件(如StyleSheets,JavaScript等)也會下載並正確鏈接到HTML文檔中(通常放置在HTML文件旁邊的文件夾中) 。所以,應該可以脫機使用該工具。
您還可以在機器上使用JavaScript皮棉,
把它從這裏
JavaScript Lint
有關於如何將其整合到許多編輯/ IDE的上述網站的說明。 我在UltraEdit中使用它,它效果很好。
從上述網站
您可以運行JavaScript林特幾個方面:
你可以將它集成到IDE,如Visual Studio,賽特,或任何其他IDE支持外部工具。當JavaScript Lint發現錯誤時,IDE會直接將您帶到包含錯誤的行。
您可以通過Windows程序員可能更喜歡的Windows資源管理器來運行它。
您可以使用命令行集成到您的構建系統中,或者您可能是Linux程序員,並且只是更喜歡命令行!
一些更多的答案(不是所有的嚴格適用於Windows)在在jslint CLI options
增編這個老問題:jslint.js的WScript的版本產生的錯誤信息是非常不同於任何錯誤信息編譯器。
如果你想他們是相似的,如果你希望能夠在命令行中指定的.js文件的名稱,而不是使用標準輸入讀取該文件,這樣做:
下載jslint.js, the WScript version。
編輯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"));
}
}}}());
這種變化做了兩兩件事:
- 允許您指定文件在命令行上運行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);
可集成工具這個人已經進入了Visual Studio。
只是禁用不需要的選項。
MiniME是JSLint的替代品,它可以在windows下運行,您可能會發現它很有用。
完全披露,我背後是:http://www.toptensoftware.com/minime它做縮小,混淆和一套合理的皮棉風格檢查。
我們發現JSLint4Java非常好。如果您使用Ant來構建您的項目,那麼它提供的Ant任務特別有用。
我知道這是一箇舊的,但沒有人提到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>');
JSLint Reporter使用Node.js運行
易於保持最新。
安裝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。
使用NPM,的Node.js的包管理器,安裝的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 ,您也可以使用Rhino或當然在Windows上運行 的任何其他JavaScript實現。
CSE HTML Validator包含JSLint並在Windows桌面機器上運行。
- 1. 是否有離線版本的.net核心工具預覽2?
- 2. openldapforwindows.exe(OpenLDAP for windows)版本2.2.29
- 3. Mercurial for Windows - Python版本?
- 4. TFS版本控制離線
- 5. 是否有類似於Java/C++的for循環的Ruby版本?
- 6. 是否有IntelliJ的JSHint或JSLint插件?
- 7. 確定離線磁盤映像的Windows版本,版本和服務包
- 8. 一個網站的離線版本
- 9. 是否有任何本地Windows版本的NodeJs計劃?
- 10. 是否有最新版本的AlchemiAPI for C#?
- 11. 是否有預編譯的ffmpeg for iphone版本?
- 12. 離線版本很好,在線是壞的..
- 13. 是否所有版本的Windows 7都包含.NET Framework 3.5版本?
- 14. 是否有FolderBrowserDialog的更新版本?
- 15. 是否有「連續」版本?
- 16. 是否有離線MinGW安裝程序?
- 17. JRuby是否有許多版本的Ruby?
- 18. 是否有asprintf的wchar_t版本?
- 19. 是否有可以在Windows上安裝的kdevelop版本?
- 20. 是否有Mac OSX版本的Windows GetFontData函數?
- 21. 是否有輸出CRLF文件的Windows版本「patch」?
- 22. 是否有在Windows 10下運行的Canon SDK版本?
- 23. 是否有用於x64 Windows的mem.exe版本?
- 24. python是否有惰性版本的itertools.groupby?
- 25. 是否可以在PhpStorm for Typescript文件中打開JSLint檢查?
- 26. 是否有numpy.all()的倒序版本?
- 27. 是否有標準的memcpy版本?
- 28. 是否有可能從Jquery獲得windows版本
- 29. Postgresql:Oracle sqlplus中是否有「@@」的psql版本?
- 30. 是否有NSMaptable的NSMutableArray版本?
是的,但你爲什麼。他定期更新。哇只是看到這個線程是多大年齡.. – 2011-03-21 03:24:23
如果你想在[github](https://github.com/douglascrockford/JSLint)上提供 – 2011-03-21 03:25:49
到WSH命令行版本的鏈接無效。 – 2011-10-11 14:25:17