Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 摩卡咖啡&x27;“请描述一下”;缺少require();在WebStorm 11中_Javascript_Node.js_Mocha.js_Webstorm - Fatal编程技术网

Javascript 摩卡咖啡&x27;“请描述一下”;缺少require();在WebStorm 11中

Javascript 摩卡咖啡&x27;“请描述一下”;缺少require();在WebStorm 11中,javascript,node.js,mocha.js,webstorm,Javascript,Node.js,Mocha.js,Webstorm,我刚刚安装了WebStorm 11并创建了一个新项目,但是WebStorm说require()是descripe方法所需要的: 我添加了mocha库,范围是测试目录(该文件位于该目录中)。这是v中引入的新检查。11-检查代码中使用的模块是否通过require()语句引用。事实上,这种检查对于摩卡测试来说是多余的(“描述”和其他东西不需要明确要求,因为它们是由摩卡添加到全球范围的)。您可以禁用此检查,也可以通过“描述”、“检查”等抑制它(请参阅)。 另一个选项:创建一个自定义范围,将您的规范文件

我刚刚安装了WebStorm 11并创建了一个新项目,但是WebStorm说
require()
descripe
方法所需要的:


我添加了mocha库,范围是测试目录(该文件位于该目录中)。

这是v中引入的新检查。11-检查代码中使用的模块是否通过require()语句引用。事实上,这种检查对于摩卡测试来说是多余的(“描述”和其他东西不需要明确要求,因为它们是由摩卡添加到全球范围的)。您可以禁用此检查,也可以通过“描述”、“检查”等抑制它(请参阅)。 另一个选项:创建一个自定义范围,将您的规范文件排除在外(设置/外观和行为/范围),然后为“缺少require()语句”检查选择此范围(设置/编辑器/检查/Javascript/节点.js)


相关问题:

编辑:如评论中所述,此问题中解决的实际问题实际上是IntelliJ 15/WebStorm 11中的一个bug(请参阅)。我在下面留下答案,因为很多人在这里寻找提供的解决方案

公认的答案是采用大锤式方法解决问题。更好的解决方案是为测试目录启用mochadefinitelytyped库。这不仅可以消除错误检查,还可以提供更好的语法突出显示

根据检查说明:

使用在外部定义自己的全局符号的库时 他们的可见JavaScript代码(例如摩卡中的
descripe()
)是 建议您添加相应的TypeScript类型定义 文件作为首选项|语言和框架中的JavaScript库| JavaScript库

导航到上面提到的首选项部分“首选项|语言与框架| JavaScript |库”,并检查mocha DefinitelyTyped库是否在列表中

如果列表中没有
@types/mocha
(以前的名称是
mocha DefinitelyTyped
),请单击
下载…
按钮,在“TypeScript社区存根”部分找到“mocha”,选择它,然后单击下载并安装:

该库在列表中仅命名为
mocha
,但一旦导入,它将转换为
@types/mocha
(2019年初之前,它将转换为
mocha DefinitelyTyped

一旦您确定输入了mocha,取消选中其启用复选框。让它完全处于检查状态将使它能够在全球范围内运行,甚至在测试之外,这是不准确的。相反,我们将管理其作用域,使其仅在您的测试目录中启用。单击
managescopes…
按钮,找到您的测试目录,单击Library列,然后选择'mochadefinitelytyped'条目。请参见下面的屏幕截图


目前Webstorm 2017.3中存在一个bug,它阻止通过“首选项|语言与框架| Javascript |库|下载和安装”方法安装Javascript库

这里正在跟踪,最新的EAP(早期访问预览)(撰写本文时为Webstorm 2017.3.2)修复了该问题。


我在这件事上撞了好几个小时,希望这对其他人有所帮助。

如果您已经在全球范围内安装了mocha,但它仍然无法正常工作,请尝试删除所有运行/调试配置

它将更新npm runner,我希望它能解决这个问题


有一个非常简单的解决方法,可以解决您和项目中所有其他开发人员的问题:

在文件顶部添加以下行:

const { describe, it, before, beforeEach, afterEach, after } = require('mocha');

“您可以禁用此检查,也可以因为‘描述’、‘它’等而抑制它。”-请详细说明。-那么,preferences->Editor->Inspections->JavaScript->Node.js->Missing require()语句,那么如何添加任何抑制项,如“descripe”、“it”等?我唯一能让它工作的方法是使用自定义范围,在我的例子中,选择我的测试文件夹并递归地选择include,然后将该范围与给定的检查规则关联(并选择为该范围完全关闭规则)。我没有找到任何方法来巧妙地调整检查规则本身,以忽略可被视为全球性的项目黑名单,例如描述、it等。如果存在这样的方法(使用Webstorm 11.0.3),请有人在此处留言。使检查忽略某些文件的唯一方法是设置范围-请参阅上面的我的回答,这是我不同意的地方-您的回答,就目前的情况而言,回避了这是可能的事实。引用答案——“您可以禁用此检查,也可以因为‘描述’、‘它’等而抑制它。另一个选项:创建…”因此,在您声明“另一个选项”之前,请告诉我您的意思。我如何抑制“描述”、“它”的使用。使用范围就是接受您的“另一个选项”建议。谢谢。这太棒了。有没有一个工具可以将这样的依赖项类型下载到全局文件夹?我已经设置了一个全局
typings
目录,我现在正在从WebStorm引用该目录,但每个依赖项需要1-2分钟才能设置。@Brian,我不这么认为。IntelliJ将它们下载到自己的缓存中,但按项目进行管理。@BamaPookie我目前在项目外的目录中有常用的打字。我知道我需要在每个项目中手动引用该目录。编写一个工具来检查您的依赖项,检查它们的类型是否存在于您的typings目录中,并下载那些不存在的可能是一个非常酷的项目。我看了看,周围没有看到类似的东西。它必须是一个全局模块,您可以为每个项目运行。@BamaPookie-显然vs代码团队在最初讨论这个问题时有着相同的想法,但结果是灾难性的