Angularjs Eslint angular和jasmine:未定义无未定义
我正在尝试使用angular、eslint:recommended和jasmine插件推荐设置来lint我的angular代码。然而,我得到的是没有定义的茉莉花的东西错误。 我的eslint文件如下所示: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
{
"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
}