问题
我做了一个示例JavaScript文件来说明我的困惑。混淆JSHint选项如何工作
(function() { console.log(true == true); })()
这应该绊倒两个错误;首先使用==
而不是===
,其次是缺少分号。但是,当我运行时
var jshint = require('jshint').JSHINT;
jshint('(function() { console.log(true == true); })()');
on Node REPL当我不期望时出现错误。我希望没有错误的原因是因为在JSHint文件,它说:
第二个参数[以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有问题。
谢谢你的非常透彻的答案。 – Aaron