Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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
Angularjs Eslint angular和jasmine:未定义无未定义_Angularjs_Jasmine_Eslint - Fatal编程技术网

Angularjs Eslint angular和jasmine:未定义无未定义

Angularjs Eslint angular和jasmine:未定义无未定义,angularjs,jasmine,eslint,Angularjs,Jasmine,Eslint,我正在尝试使用angular、eslint:recommended和jasmine插件推荐设置来lint我的angular代码。然而,我得到的是没有定义的茉莉花的东西错误。 我的eslint文件如下所示: { "plugins": ["jasmine"], "extends": ["angular", "eslint:recommended", "plugin:jasmin

我正在尝试使用angular、eslint:recommended和jasmine插件推荐设置来lint我的angular代码。然而,我得到的是没有定义的茉莉花的东西错误。 我的eslint文件如下所示:

{
  "plugins": ["jasmine"],
  "extends": ["angular", "eslint:recommended", 
  "plugin:jasmine/recommended"],
  "rules": {
   "quotes": [ 2, "single"],
   "strict": [2, "global"],
   "semi": ["error", "always"],
   "angular/on-watch": "warn"
  }
}
我得到以下错误:

未定义3:1错误“描述”无未定义

4:5错误“it”未定义无未定义

5:9未定义错误“expect”无未定义

7:5错误“it”未定义无未定义

未定义8:9错误“expect”无未定义

在我的
package.json
中,我有
2.3.0
版本用于
eslint
1.8.1
版本用于
eslint插件jasmine
。对于
eslint-config-angular
eslint-plugin-angular
我还有
0.5.0
版本

我也尝试过不指定
“plugins”:[“jasmine”]
在我的
eslint
文件中,但是我得到一个错误,告诉我没有定义jasmine规则(例如未找到规则“jasmine/no-focused tests”的
定义)。

对于set,任何未明确声明的变量都会导致警告。 可以在等级库文件的顶部设置:

添加

"env": {
 "jasmine": true
}

解决了这个问题。这是我通过eslint jasmine插件的github页面得到的建议。

您可以将
/*eslint env jasmine*/
添加到
.spec.ts
文件的顶部。这基本上与Geert提出的解决方案相同,但采用了每个文件的解决方案。微妙的区别在于,在非测试文件中使用一些全局定义的测试方法,如
descripe()
it()
,仍然是一个错误


(可能有一种聪明的方法可以设置ESLint,这样您就不必将这一行添加到所有
.spec.ts
文件中。)

我发现的方法是为所有Jasmine函数配置验证并在一个地方进行验证,但在“非spec”文件中使用时仍然标记它们,如下所示

在配置级别定义公共配置。然后,对于那些特定的配置(如Typescript或Jasmin),执行覆盖。这样,“全局配置”只应用于特定文件

{
“环境”:{
“茉莉花”:真的吗
},
“文件”:[“***.spec.js”]
}
.eslintrc.js的片段

/**
*@type{import(“eslint”).Linter.Config}
*/
module.exports={
“环境”:{…},
“扩展”:[
“eslint:建议使用”
],
“覆盖”:[
{
“扩展”:[
“插件:@typescript eslint/eslint推荐”,
“插件:@typescript eslint/推荐”
],
“文件”:[“***.ts”],
“解析器”:“@typescript eslint/parser”,
“解析选项”:{
“项目”:“tsconfig.json”,
“tsconfigRootDir”:
},
“插件”:[
“@typescript eslint”
]
},
//这是重要的部分
{
“环境”:{
“茉莉花”:真的吗
},
“文件”:[“***.spec.js”]
}
],
“根”:对,
“规则”:{…}
};

Hej,行得通。但我认为在我所有的测试文件中都放上这一行是非常难看的。我还以为那是茉莉花插件修复的呢?有没有其他方法可以让我把它放在一个地方,并应用到我所有的规范文件中?规则正在发挥作用:警告您使用全局变量。在对.spec文件进行lint时,您可以禁用此规则(使用.spec和code的单独设置运行eslint),或者根本不在spec文件上使用lint。或者完全禁用此规则。对于那些对所有配置文件感到困惑的人(就像我一样):设置转到
eslintrc
"env": {
 "jasmine": true
}