Eslint angular and jasmine: is not defined no-unde

2020-04-02 08:40发布

问题:

I am trying to lint my angular code using angular, eslint:recommended and the jasmine plugin recommended settings. However I get is not defined errors on the jasmine stuff. My eslint file looks like this:

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

I get the following errors:

3:1 error 'describe' is not defined no-undef

4:5 error 'it' is not defined no-undef

5:9 error 'expect' is not defined no-undef

7:5 error 'it' is not defined no-undef

8:9 error 'expect' is not defined no-undef

And in my package.json I have version 2.3.0 for eslint and 1.8.1 for eslint-plugin-jasmine. I also have version 0.5.0for eslint-config-angular and 1.0.0 for eslint-plugin-angular.

I have also tried without specifying the "plugins": ["jasmine"] in my eslint file but then I get an error telling me the jasmine rules are not defined (eg Definition for rule 'jasmine/no-focused-tests' was not found).

回答1:

Adding

"env": {
 "jasmine": true
}

solved the problem. This was the suggestion that i got through the github page of the eslint jasmine plugin.



回答2:

With this rule set, any variable non explicitly declared causes a warning. You can set at the top of your spec file:

/* global describe it expect */