JSLint:控制注释(select性忽略)

JSLint是否有类似于JavaScript Lint的控制注释 (例如/*jsl:fallthru*/ )来忽略某些段落?

 /*ignore jslint start*/ 

之前和

 /*ignore jslint end*/ 

之后的代码被忽略。 例如:

 function ignore(){ /*ignore jslint start*/ var x; var y; /*ignore jslint end*/ } 

或者导出JsLint设置,定义您的IgnoreErrorStart / IgnoreErrorEnd符号并导入。


编辑
有些人可能会与JSHint混淆这个答案。 在这种情况下,使用这些:

 /*jshint ignore:start*/ <!-- code in here --> /*jshint ignore:end*/ 

采取从https://stackoverflow.com/a/26012357/313501

是。 从文档[请注意,这是从较旧版本的文档,但它仍然适用]:

JSLint的实现接受一个选项对象,它允许你确定你所接受的JavaScript子集。 也可以在脚本的源代码中设置这些选项。

选项规范可以像这样:

 /*jslint nomen: true, debug: true, evil: false, vars: true */ 

选项规范以/ * jslint开头。 请注意,j之前没有空格。 规范包含一系列名称值对,其中名称是JSLint选项,值为true或false。 选项规范优先于选项对象。

文档没有具体提到它,但是你可以在整个代码中启用和禁用多个jslint注释(谢谢Dominic Mitchell)。

文档中有一个完整的选项列表 。

下面是一个代码示例来补充Matthew Crumley的优秀回答:

 (function ($) { $.isValidEmail = function(email){ /*jslint maxlen: 1000*/ var EMAIL_REGEXP = /^((([az]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([az]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([az]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([az]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([az]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([az]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([az]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([az]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([az]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([az]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i; /*jslint maxlen: 200*/ return EMAIL_REGEXP.test(email); }; }(jQuery)); 

据我所知,这里没有任何回答这个问题。 下面的代码仍然给我validation错误,我不能让JSLint接受,我没有时间来纠正一个正在工作的正则expression式,现在给予实际的优先权。

我收到的错误是一个非正式的“{”,可能导致我的新专业团队拒绝JSLint作为一个可行的工具。 似乎没有办法closures我们的努力,更有效地发展,这似乎有问题。

 /*jslint browser: true, devel: true, todo: true, regexp: true */ /*global $ */ /* Abstract: + This module constitutes a layer of abstraction surrounding our bootstrap dependencies. + This module also contains some utility functions (so find a better place for them already!). Validation: + This module has been validated using JSLint (www.jslint.com). */ var shoelaceModule = (function () { 'use strict'; return { showModal: function ($target) { $target.modal('show'); }, hideModal: function ($target) { $target.modal('hide'); }, /*jsl:ignore */ /*ignore jslint start */ stringFormat: function (format) { var args = Array.prototype.slice.call(arguments, 1); return format.replace(/{([^{}]*)}/g, function (match, number) { return args[number] !== 'undefined' ? args[number] : match; }); }, /*ignore jslint end */ /*jsl:end */ init: function () { return this; } }; }()); 

这似乎并不如此。 一些谷歌search发现其他人发表了几个post,以及JSLint人员的答复,沿着“修复你的代码,而不是故意给它加上标签”。 似乎不完全友好。 当然,也许在这种情况下,你应该修改代码,但我留下来让你回答。

我会说,不,JSLint似乎没有一个简单的方法来说,'忽略这块代码',非常令我烦恼。 单独禁用不同的选项然后像Matt一样重新打开它似乎应该可以工作,但它不会像/* jshint ignore:start *//* jshint ignore:start *//* jshint ignore:end */

我正在研究这个问题的原因是因为我正在使用Brackets ,它使用了JSLint,因为它是默认的linter。 我有一些缩小的第三方代码,我暂时复制到我的.js中,只要它在那里,JSLint就会抱怨。 什么样的臭味是我经常想要粘贴一个缩小的块,这也是当我想让linter看着我的代码来帮助我排除模糊的错误。 后来我只是用Grunt把所有东西都缩小和连接起来,但是不能在一开始就禁用它,实际上是非常烦人的。

你也可以:

ignoreThis(); // jshint ignore:line

有没有办法抑制一个给定的行JSHint警告?

/*jsl:ignore*//*jsl:end*/代码。