tslint는 console.log에 대한 호출이 허용되지 않는다고 말합니다. 어떻게 허용합니까?


102

방금 typescript와 함께 create-react-app을 사용하기 시작했습니다.

create-react-app my-app --scripts-version=react-scripts-ts

기본 tslint.json 구성은 console.log ()를 허용하지 않습니다.

(현재로서는) 어떻게 console.log를 활성화 할 수 있습니까?

이에 대한 문서는 https://palantir.github.io/tslint/rules/no-console/에 있습니다. 그러나 그들은이 줄을 어디에 둘지 말하지 않습니다.

    "no-console": [true, "log", "error"]

tslint.json 구성 파일 구문을 검색하고 찾았 으므로 다음을 시도했습니다.

"rules": {
    "no-console": [true, "warning"]
}

경고 일 뿐인 로그 메시지를 얻으려는 시도. 그러나 그것은 작동하지 않았습니다.

내가 가지고있는 console.log () 줄 몇 개를 주석 처리했지만 앞으로이 작업을 수행 할 수 있기를 원합니다.

답변:


200

오류 메시지를 한 번만 방지하려면 // tslint:disable-next-line:no-console호출 직전에 줄을 추가하십시오 console.log.

규칙을 완전히 비활성화하려면 다음을 추가하십시오 tslint.json(대부분 루트 폴더에 있음).

{
    "rules": {
        "no-console": false
    }
}

6
무슨 일이 일어 났는지 잘 모르겠지만 이제 "no-console": false가 저에게 효과가 없습니다. 해결 방법은 // tslint:disable:no-console파일 맨 위에 두는 것 입니다.
PatS 2017

10
"no-console": false는 저에게 적합하지만 "npm start"를 다시 시작해야 적용됩니다.
jlb

2
"no-console": false나에게도 작동하지 않습니다 npm run start.
Eric Fulmer

18
@EricFulmer는 이것을 "jsRules"노드에 넣었습니다. "jsRules": { "no-console": false},
billb

오류가 사라지기 전에 규칙을 추가하고 jsRules새로 작성했습니다 yarn start. 그들 중 어느 것이 그것을했는지 확실하지 않습니다.
Byron Wall

28

자바 스크립트와 타이프 스크립트가 혼합 된 코드베이스로 여기에 오는 분들을 위해.

jsRules에서 'no-console'옵션을 정의해야 할 수도 있습니다. 자바 스크립트 파일을위한 jslints 규칙 객체는 javascript와 typescript를위한 별도의 규칙 객체가 있습니다.

//tslint.json

{
  "extends": ["tslint:recommended", "tslint-react", "tslint-config-prettier"], //Example... 
  "rules": {
    "no-console": false //Disable for typescript
  },
  "jsRules": {
    "no-console": false //Disable for javascript
  }
}

하지만-이 일의 목적은 무엇입니까?
roberto tomás 19

jsRules 또는 콘솔 없음?
Lee Brindley 19

no-console-콘솔 메시지가 프로덕션 코드에 속하지 않는다는 경고 만있는 것 같습니다. 그건 좀 그것을 의심 규칙 당신의 ENV가 자극되지 언제든지 만드는
의 Tomás 로베르토

나는 당신의 요점을 어느 정도 봅니다. 고려해야 할 한 가지는 콘솔이 자바 스크립트 언어의 일부가 아니라 일반적으로 자바 스크립트 엔진에서 구현된다는 것입니다. 그래도 요점입니다. 자바 스크립트 언어의 일부가 아니라 존재하거나 존재하지 않을 수있는 종속성을 코드에 적용합니다. . 그렇게 말하면이 규칙의 용도를 볼 수 있습니다.
Lee Brindley 19

@ robertotomás,이 규칙은 코드에 console.log 메시지가없는 모범 사례를 기반으로합니다. 프로덕션 코드에는 이것이 없어야하므로 제품이 준비되지 않았 음을 알 수 있습니다. 두 개의 tslint 구성을 허용하는 구성과 허용하지 않는 구성이있을 수 있습니다. 전체 앱에 대한 로깅을 쉽게 활성화 또는 비활성화 할 수있는 (래퍼) logger.info를 호출 하는 함수가 console.log있습니다. 이것이 최선의 방법이라고 말하는 것이 아니라 제가 한 일입니다. 또한 github.com/krakenjs/beaver-logger 와 같은 다른 로거와 쉽게 통합 할 수 있습니다.
PatS

8

다음을 귀하의 tslint.json

{
   "rules": {
      "no-console": {
         "severity": "warning",
      } 
   }
}

6

이것은 콘솔 없음 규칙 (또는 해당 문제에 대한 다른 규칙)을 정의하는 올바른 구문이지만 오류가 아닌 경고 만 표시됩니다 (분명히 옵션을 원하는대로 변경).

"no-console": {
    "severity": "warning",
    "options": [
        "log",
        "error",
        "debug",
        "info",
        "time",
        "timeEnd",
        "trace"
    ]
},

이것은 경고로 완벽하게 작동합니다. BTW, 이것은 tslint 문서에 문서화되어 있지 않습니다.
nelson6e65

1

typeScript 버전 3에서는 아래와 같은 주요 규칙에 따라 tslint.json을 업데이트합니다.

"no-console": [
    true,
    "debug",
    "time",
    "timeEnd",
    "trace"
],

이렇게하면 debug, time, timeEnd, trace가 사용되지 않도록 지정합니다. 기본 tslint "info"가 목록에 있으면 제거하면됩니다.



1

내가 tslint "no-console"규칙을 처리하는 방법은 내가 발견 한 파일 단위이며 개발 단계에서 편리하고 격리되어 있습니다.

첫 번째 console.log (); Visual Studio Code에는 다음을 추가하는 옵션이 표시됩니다.

// tslint : disable-next-line : 콘솔 없음

console.log ();

그래서 여기서 "-next-line"을 삭제하면이 명령이 전체 파일을 덮습니다.

// tslint : disable : 콘솔 없음

console.log ();

전체 앱의 기능을 비활성화하는 대안으로 도움이되기를 바랍니다.

RON



0

작동 // tslint:disable-next-line:no-console하지 않는 경우 시도// eslint:disable-next-line:no-console


0
  {
    "extends": ["tslint:recommended", "tslint-react", "tslint-config-prettier"],
    "linterOptions": {
        "exclude": [
            "config/**/*.js",
            "node_modules/**/*.ts",
            "coverage/lcov-report/*.js"
        ]
    },
    "rules": {
        "no-console": false
    },
    "jsRules": {
        "no-console": false
    }
 }

여기에 이미지 설명 입력

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.