问题
我制作了一个示例 JavaScript 文件来说明我的困惑。
(function() { console.log(true == true); })()
这应该会引发两个错误;首先使用 of==
而不是===
,其次是缺少分号。但是,当我跑步时
var jshint = require('jshint').JSHINT;
jshint('(function() { console.log(true == true); })()');
在 Node REPL 中,当我不希望出现错误时,我会收到错误。我期望没有错误的原因是因为在 JSHint 文档中,它说:
第二个参数 [to jshint] 是控制 JSHINT 操作的选项的可选对象。大多数选项都是布尔值:它们都是可选的,默认值为 false。
我希望这不会产生任何错误,因为我没有定义任何选项,所以一切都应该是错误的。意外行为的最后一部分是设置选项似乎什么都不做。以下对 jshint 的两次调用也会产生相同的错误:
var myFile = '(function() { console.log(true == true); })()';
jshint(myFile, {eqeqeq: false, asi: false});
jshint('/*jshint eqeqeq:false, asi:false */\n' + myFile);
问题
我不确定 JSHint 选项是如何工作的,我很可能会误解文档。我很高兴知道我在jshint
上面的调用或我的假设中是不正确的,或者 JSHint 是否确实存在问题。