我使用File>在Webstorm 8.0.4中设置了Jasmine集成。设置> JavaScript>库。我添加了一个karma-jasmine
库和我的karma-jasmine节点模块的lib /文件夹。
这在语法突出显示有效的方式下工作正常,我可以跳转到声明并正确显示文档。所以连接似乎很好。但是,JSHint仍然抱怨每个关键字没有被定义,例如
JSHint: 'describe' is not defined. (117)
另请参见以下屏幕截图。正如您所看到的,语法突出显示很好,但我仍然会收到错误。
答案 0 :(得分:8)
考虑到我从自己构建的.jshintrc中获得了什么,是的,您需要将这些名称添加到该文件中。
恼人的是,除非你用类似的东西来支架,好吧,自耕农!
以下是yeoman为我们创建的.jshintrc - 以及lodash / underscore和jQuery的添加。
{
"node": true,
"browser": true,
"esnext": true,
"bitwise": true,
"camelcase": true,
"curly": true,
"eqeqeq": true,
"immed": true,
"indent": 4,
"latedef": true,
"newcap": true,
"noarg": true,
"quotmark": "single",
"undef": true,
"unused": true,
"strict": true,
"trailing": true,
"smarttabs": true,
"multistr": true,
"globals": {
"after": false,
"afterEach": false,
"angular": false,
"before": false,
"beforeEach": false,
"browser": false,
"describe": false,
"expect": false,
"inject": false,
"it": false,
"jasmine": false,
"spyOn": false,
"$": false,
"_": false
}
}
答案 1 :(得分:3)
这是一个JSHint'功能'。 JSHint基于每个文件工作,并且对其他文件中定义的全局变量和函数一无所知,除非它们被添加到“全局”列表中。这可以通过在代码中添加相应的注释(/* global MY_LIB*/
- 请参阅http://www.jshint.com/docs/),或者将您想要全局使用的变量/函数添加到{{1}中的“预定义”列表中来完成}。这是JSHint选项列表中的最后一项