如何在带有 socket.io 的 meanjs 项目中配置 jshint?

How configure jshint in a meanjs project with socket.io?

我完全遵循了that tutorial(为了测试,我显然用localhost:3000替换了vexxhost域名)。

并且在调用 grunt 时出现错误('io' 未定义)但服务器启动时没有任何其他抱怨。

如果我正确理解了这个问题,jshint 扫描整个项目来验证代码,他发现引用了一个未定义的变量!但是 'io' 是在整个应用程序启动时定义的(因为脚本已加载)。事实上,该错误与其说是错误,不如说是警告

如果我是对的(如果我不正确,我希望这里的某些人会纠正我),这让我们想到了我的问题:如何重构代码或配置 jshint 以避免该警告?

如果可能的话,我希望明确引用 'io'。

提前谢谢大家。

编辑

我在该教程中的结果可在 github 上获得 here。有问题的文件是 public/modules/core/services/socket.js.

有两种方法可以配置 JSHint 来更正该错误:

  • 如果您在代码的多个位置调用 io 变量。 JSHint 可在 .jshintrc 文件中配置,有一个全局部分可以在其中添加 "io": true。通过该修改,JSHint 应将 io 视为全局变量。

  • 或者如果只调用一次io变量,可以在调用的文件中直接添加注释/* global io: true */