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*/
是。 从文档[请注意,这是从较旧版本的文档,但它仍然适用]:
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*/
代码。
- 使用“let”和“var”声明一个variables有什么区别?
- 如何创build一个自动完成的combobox?
- Chrome中不再允许使用selectionStart / selectionEndinputtypes=“数字”
- Bootstrap的JavaScript需要jQuery 1.9.1或更高版本
- 获取元素的jQueryselect器
- React + Redux – 在表单组件中处理CRUD的最佳方法是什么?
- angular度指令是否可以将指令的parameter passing给指令的属性中指定的expression式?
- 将数据传递给jQuery UI对话框
- 如何在调用asynchronous调用(如Ajax)时等待代码