是否有适用于Windows的脱机版本的JSLint
Is there an offline version of JSLint for Windows?
我想在不访问JSLint网站的情况下检查我的JavaScript文件
这个工具有适用于Windows的桌面版本吗?
来自http://www.jslint.com/lint.html:
分析是通过脚本完成的在您的机器上运行。您的脚本不是通过网络发送的。
它也可用作Konfabulator小工具。您可以通过以下方式检查文件拖放到小工具。您可以通过重新检查文件双击小部件。
它也可以在WSH命令中使用行版本。
它也有Rhino命令行版本。
或者,由于JSLint是一个在浏览器中运行的JavaScript程序,您可以获取脚本并在本地运行它。
您也可以在机器上使用JavaScript Lint,
从这里获取
JavaScript Lint
上面的网站上有关于如何将其集成到许多编辑器/IDE中的说明。我在UltraEdit中使用它,效果很好。
来自上述站点
您可以通过多种方式运行JavaScriptLint:
您可以将它集成到您的IDE中,例如Visual Studio、SciTE或任何其他支持外部工具的IDE。当JavaScriptLint发现错误时,IDE会直接将您带到包含错误的行。
您可以通过Windows资源管理器运行它,Windows程序员可能更喜欢它。
你可以使用命令行集成到你的构建系统中,或者你是一个Linux程序员,只是更喜欢命令行!
这个老问题的补充:jslint.js的WScript版本产生的错误消息与任何编译器的错误消息都非常不同。
如果您希望它们相似,并且希望能够在命令行中指定.js文件的名称,而不是使用stdin读取文件,请执行以下操作:
下载jslint.js,WScript版本。
编辑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。如果根本没有指定文件,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任务特别有用。
只需将html页面保存到硬盘驱动器,然后将其使用的.js文件下载到相同位置。这就是JavaScript的美妙之处。
在jslint CLI选项上还有更多答案(并非所有答案都严格适用于windows)
您可以将这个家伙制作的工具集成到Visual Studio中。
http://jason.diamond.name/weblog/2008/08/09/verifying-javascript-with-jslint-and-visual-studio/#content
只需禁用不需要的选项。
可以在此处找到Visual Studio插件。
这有点粗糙,但能完成任务。
我刚刚加入这个项目,将在接下来的几个月里更新它。
Visual Studio 2010有一个不错的扩展。
如果你使用notepad++,有一个JSLint插件适合你。
用于Notepad++的JSLint插件
您可以从notepad++的插件管理器中找到并安装它。
大多数浏览器都能够保存"整个"页面,这意味着所有外部文件(如样式表、JavaScripts等)也会被下载并正确链接到HTML文档中(通常放在HTML文件旁边的文件夹中)。因此,应该可以离线使用该工具。
MiniME是JSLint的替代品,它在windows下运行,您可能会发现它很有用。
完全公开,我支持这一点:http://www.toptensoftware.com/minime它进行缩小、模糊和一组合理的lint样式检查。
JSLint Reporter与Node.js一起运行
易于更新。
-
安装Node.js.
-
将jslint报告程序安装到:
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或任何其他有效的JavaScript实现当然是在Windows上。
CSE HTML验证器包括JSLint并在Windows桌面计算机上运行。
- jslint-vim configuration
- 你能把grunt.js中的linter改成jslint吗
- Jslint 错误:需要条件表达式,而是看到分配
- Foundation 6 Zurb模板将无法脱机工作
- 以HTML文件中的编码形式脱机存储图像
- 当使用服务工作者时,脱机页面不显示在提取功能中
- Winjs.xhr、Visual Studio和脱机服务器
- 如何避免“;使用数组文字表示法“;以下javascript代码中的jslint错误
- 如何将浏览器用作脱机应用程序的GUI
- 谷歌jQuery UI链接无法脱机工作
- 为什么jslint报告Unexpected'变量'
- 使用自定义选项从控制台运行JSlint
- Jslint改进| url的字符集
- 使用Breeze脱机数据时出现未定义的问题不是函数
- 我应该担心HTML5Shiv.min.js 3.7.2版本上的这些JSLint警告吗?
- redis服务器脱机使节点崩溃
- 崇高的jslint:任何忽略特定代码段的方法
- JSlint错误selectedDate已定义
- JSLint:在三元变量集的作用域之外使用
- 是否有适用于Windows的脱机版本的JSLint