programing

Eslint angular and jasmine: 정의되지 않음 - undefect

itmemos 2023. 10. 14. 09:35
반응형

Eslint angular and jasmine: 정의되지 않음 - undefect

angular, eslint:recommended 및 재스민 플러그인 권장 설정을 사용하여 각도 코드를 보풀려고 합니다.그러나 나는 재스민 물건에 정의된 오류가 없습니다.내 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 오류 'describe'이(가) 정의되지 않음 - 정의 해제 없음

4:5 오류 'it'이(가) 정의되지 않음 - no-undef

5:9 오류 'expect'이(가) 정의되지 않음 - 정의 해제 없음

7:5 오류 'it'이(가) 정의되지 않음 - no-undef

8:9 오류 'expect'이(가) 정의되지 않았습니다. 정의 해제되지 않았습니다.

그리고 내 안에package.json버전이 있습니다.2.3.0위해서eslint그리고.1.8.1위해서eslint-plugin-jasmine. 버전도 있습니다.0.5.0 위해서eslint-config-angular그리고.1.0.0위해서eslint-plugin-angular.

나는 또한 특정하지 않고 시도했습니다."plugins": ["jasmine"]내 안에eslint파일을 작성했는데 재스민 규칙이 정의되지 않았다는 오류가 발생합니다(예:Definition for rule 'jasmine/no-focused-tests' was not found).

추가하기

"env": {
 "jasmine": true
}

문제를 해결했습니다.이것은 제가 eslint jasmine 플러그인의 github 페이지를 통과한 제안이었습니다.

모든 Jasmine 함수에 대한 유효성 검사를 구성하고 한 곳에서 수행하지만, "비스펙" 파일에서 사용할 때 여전히 플래그를 지정하는 방법은 다음과 같습니다.

구성 수준에서 공통 구성을 정의합니다.그런 다음 특정 구성(예: Typescript 또는 Jasmin)에 대해 재정의를 수행합니다.이러한 방식으로 "글로벌 환경설정"은 특정 파일에만 적용됩니다.

{
    "env": {
        "jasmine": true
    },
    "files": ["**/*.spec.js"]
}

조각.eslintrc.js:

/**
 * @type {import("eslint").Linter.Config}
 */
module.exports = {
    "env": {...},
    "extends": [
        "eslint:recommended"
    ],
    "overrides": [
        {
            "extends": [
                "plugin:@typescript-eslint/eslint-recommended",
                "plugin:@typescript-eslint/recommended"
            ],
            "files": ["**/*.ts"],
            "parser": "@typescript-eslint/parser",
            "parserOptions": {
                "project": "tsconfig.json",
                "tsconfigRootDir": __dirname
            },
            "plugins": [
                "@typescript-eslint"
            ]
        },
        // This is the important part
        {
            "env": {
                "jasmine": true
            },
            "files": ["**/*.spec.js"] 
        }
    ],
    "root": true,
    "rules": {...}
};

이 규칙이 설정되면 명시적으로 선언되지 않은 변수는 경고를 발생시킵니다.사양 파일 상단에 다음을 설정할 수 있습니다.

/* global describe it expect */

추가할 수 있습니다./* eslint-env jasmine */끝까지.spec.tsfiles. 이 솔루션은 기본적으로 Geert가 제안한 솔루션과 동일하지만 파일 단위 솔루션을 사용합니다.미묘한 차이는 다음과 같은 전 세계적으로 정의된 테스트 방법 중 일부를 사용하는 것은 여전히 오류가 될 것이라는 것입니다.describe()그리고.it()테스트하지 않은 파일에 저장할 수 있습니다.

ESLint를 설정하는 현명한 방법이 있을 수 있으므로 이 줄을 모든 항목에 추가할 필요가 없습니다..spec.ts파일(files).

언급URL : https://stackoverflow.com/questions/36952252/eslint-angular-and-jasmine-is-not-defined-no-undef

반응형