programing

유형 스크립트로 "디버그" 모듈을 사용하는 방법

iphone6s 2023. 6. 21. 22:25
반응형

유형 스크립트로 "디버그" 모듈을 사용하는 방법

Typescript가 포함된 NTVS(Node Tools for Visual Studio) 프로젝트가 있습니다.
다음 문이 컴파일되지 않습니다.

import debug = require('debug')('MyApp');

구문 오류입니다.

(TS) ';'이 예상됩니다.

두 괄호 '()' 사이.
TypeScript에서 "디버그"를 사용할 수 있습니까?

README에서 디버그 모듈이 다음을 장식하는 기능을 내보내고 있습니다.console.error모듈 이름(MyApp)을 입력합니다.다른 방법도 있겠지만, 저는 다음과 같은 방법을 사용합니다.

import Debug from "debug";
const debug = Debug("MyApp");

// then to use
debug("Something happened");

콘솔에 모든 내용을 인쇄하려면 다음을 사용하여 앱을 실행합니다.

$ DEBUG=* node MyApp.js

최신 버전의 Typescript에서는 여기에 대한 답변이 효과가 없었습니다.Typescript에서 올바른 가져오기 구문으로 작동하는 방법은 다음과 같습니다.^3.5.3:

디버그 패키지 및 디버그용 유형 스크립트 유형 설치(개발자에만 필요한 유형)

npm install --save debug
npm install --save-dev @types/debug

그럼 인.ts파일:

import Debug from "debug";
const debug = Debug("AppName");

이것이 다른 누군가에게 도움이 되기를 바랍니다!

TypeScript는 Javascript의 슈퍼셋이므로 다음과 같은 한 줄기 작업도 수행할 수 있습니다.

const debug = require('debug')('my-app:my-module');

유형 스크립트는 다음과 같은 결론을 내리는 것 같습니다.debug상수는 'any' 유형이고 모든 유형의 안전을 잃게 됩니다. 하지만 디버그처럼 간단한 패키지를 사용하면 괜찮을 것 같습니다.

개인적으로 모든 모듈에서 디버깅을 인스턴스화하는 2줄은 1줄이 너무 많다고 생각하기 때문에 .ts 파일에서 이 1줄을 계속 사용하고 있습니다.

추신. 저는 모듈 태그를 사용하여 특정 모듈에서만 로그인을 활성화할 수 있습니다.DEBUG=my-app:my-module,my-app:some-other-module ts-node my-app또는 모든 모듈을 포함한DEBUG=my-app:* ...

유형 스크립트에 로그가 표시되지 않는 디버그 솔루션은 디버그가 로그를 표시하는 방법을 결정하기 위해 환경 변수에 의존하기 때문입니다.

해결책

dotenv해당 유형 정의 파일을 설치했는지 확인합니다.

npm install dotenv && npm install -D @types/dotenv

그런 다음 프로젝트 추가 및 다음 환경 변수의 루트 폴더에 .env 파일을 생성합니다.

DEBUG = *

응용프로그램의 인덱스 파일에서 마지막으로 선택합니다.다른 작업을 실행하기 전에 환경 변수를 로드하도록 dotenv를 구성합니다.

매우 중요한 dotenv 구성은 다른 코드 행보다 먼저 인덱스 파일의 맨 위에서 수행됩니다.

이 두 줄의 코드를 추가합니다.

import dotenv from "dotenv";
dotenv.config();

표준 입력에 출력을 표시하기 위해 디버그에 필요한 DEBUG 환경 변수를 로드해야 합니다.

파일에 정의된 로그만 보고 다른 모듈의 다른 로그는 보지 않으려면 이 옵션을 선택합니다.응용프로그램 이름을 네임스페이스로 정의하는 것이 좋습니다.이렇게 하면 위에서 설명한 환경 변수를 기준으로 로그를 필터링할 수 있습니다.

const debug = debug("applicationName:other-more-information");

그런 다음 디버그 로그만 보려면 DEBUG 변수를 에서 로 변경합니다.

DEBUG = applicationName:*

unix 기반 OS 사용자의 경우 이 변수를 환경 변수로 직접 내보내볼 수 있습니다(이 솔루션은 테스트하지 않았지만). export DEBUG=* 이 방법은 이 셸에서 시작모든 프로세스에서만 작동합니다.

언급URL : https://stackoverflow.com/questions/47724165/how-to-use-the-debug-module-with-typescript

반응형