问题 禁用“使用use strict的函数形式”但保留“Missing'use strict'statement”警告


我正在使用jslint来验证我的代码。
我的所有页面都有“严格使用”。
如何禁用消息“使用'use strict'的函数形式”,但保留“Missing'use strict'statement”警告,所以我不会忘记把它放在新文件上?

谢谢


12393
2018-01-21 14:17


起源



答案:


根据 克罗克福德的帖子,你想要在函数中包装所有内容......

(function () {
    "use strict";
    // the rest of your file goes here...
}());

你也可以使用 jshint 相反,它有一个“globalstrict“选项可以完全满足您的要求,而无需在函数中包装所有内容


14
2018-01-21 18:23



“如果一个文件带有”use strict“;前导码附加了草率代码,那么草率代码将被严格处理,并且可能会失败。”这是你想要把它放在一个函数中的时候。不是所有的时间。我的所有代码都很严格,所以对我没用。 - Randall Flagg
您是否按照我的建议检查了jshint? - Paul Armstrong


答案:


根据 克罗克福德的帖子,你想要在函数中包装所有内容......

(function () {
    "use strict";
    // the rest of your file goes here...
}());

你也可以使用 jshint 相反,它有一个“globalstrict“选项可以完全满足您的要求,而无需在函数中包装所有内容


14
2018-01-21 18:23



“如果一个文件带有”use strict“;前导码附加了草率代码,那么草率代码将被严格处理,并且可能会失败。”这是你想要把它放在一个函数中的时候。不是所有的时间。我的所有代码都很严格,所以对我没用。 - Randall Flagg
您是否按照我的建议检查了jshint? - Paul Armstrong


如果不更改驱动jslint的javascript文件就无法完成。

对我来说,功能形式是一种胡思乱想的工作实践,因此不能强迫别人。

不是每个人都需要结合和缩小,但即使我这样做,我也会组合使用相同规则的代码,因此文件声明就足够了。

虽然jshint具有您所需的功能。最新的jslint现在比jshint更先进,发现更多的弱点并应对更复杂的代码。我喜欢jshint,但它跟不上jslint。


2
2018-01-21 18:20





我找到的解决方案是用“use strict”创建一个单行文件;没有别的

将它作为连接包中的第一个文件,将其添加到jslint的排除列表中,切换sloppy = true pragma

可能会有一些副作用没有找到草率的代码,但我对文档的理解是它只是检查“使用严格”;线


0
2018-06-06 22:33





这是一个黑客压制“使用'使用严格'的函数形式。”

    $ uname -a
    Darwin 13.0.0 Darwin Kernel Version 13.0.0
  1. 找出你的jslint发行版的位置。

    $ which jslint
    /usr/local/bin/jslint
    $ ls -l /usr/local/bin/jslint
    lrwxr-xr-x  1 root  admin  40 11 Feb  2013 /usr/local/bin/jslint -> ../lib/node_modules/jslint/bin/jslint.js
    $ cd /usr/local/lib/node_modules/jslint/
    $ ls
    LICENSE     README.md   lib     package.json
    Makefile    bin     node_modules
    
  2. 注释掉警告。

    $ sudo vim lib/jslint.js
    
    search for 'function_strict'
    comment out the line 'warn('function_strict');'
    note: the exact line might vary on some versions but just comment it out.
    
  3. 如果它不起作用,您可能安装了多个版本的jslint,并且没有编辑正确的版本。

    sudo find / -name jslint.js
    

-2
2018-02-11 21:53