programing

유형 스크립트 - Visual Studio 코드에서 모듈 'http'를 찾을 수 없습니다.

telebox 2023. 6. 26. 21:14
반응형

유형 스크립트 - Visual Studio 코드에서 모듈 'http'를 찾을 수 없습니다.

NodeJS 및 Typescript 개발을 위해 Visual Studio Code를 사용하고 있습니다.이 코드를 작성하는 경우:

import * as http from 'http'; 

컴파일에 의하면error TS2307: Cannot find module 'http'.

이 오류를 어떻게 처리합니까?

그리츠

이것은 저에게 효과가 있었습니다.

npm install @types/node --save

저는 OP 이후로 시간이 많이 흘렀다는 것을 알지만, 이것은 누군가가 이 문제를 우연히 발견할 경우를 대비한 더 최신의 답변입니다.

업데이트된 솔루션

이 오류는 Typescript에서 발생합니다. 왜냐하면httpNode.js의 다른 모듈은 Javascript로 작성됩니다.Typescript 컴파일러에는 Javascript로 작성된 라이브러리의 유형과 모듈에 대한 정보가 없습니다.이 정보를 추가하려면 유형 스크립트 프로젝트에 Node.js에 대한 유형 선언을 포함해야 합니다.

프로젝트의 루트 디렉터리에서 다음 터미널 명령을 실행합니다.

npm install -D @types/node

바로 그거야!이제 오류가 사라져야 합니다.


뒤에서 무슨 일이 일어날까요?

위의 명령은 형식 선언 파일을 다운로드합니다..d.ts)(Node.js의 경우).이제 디렉터리에 있는 파일을 볼 수 있습니다../node_modules/@types/node당신의 프로젝트와http.d.ts그들 중 하나입니다.이 파일에서 다음에 대한 선언을 찾을 수 있습니다.http모듈 및 다음과 같은 모든 유형IncomingMessage,ServerResponseHTTP 서버에서 사용되는 기타 항목.이것은 Typescript 컴파일러와 VS 코드가 형식 선언 정보를 사용하여 형식 안전을 제공하는 방법입니다.

@유형:

Definite라는 커뮤니티 유지 관리 저장소가 있습니다.Express, Sequitize, JQuery 등과 같은 많은 오래되고 새로운 Javascript 라이브러리에 대한 형식 선언 파일이 들어 있는 유형입니다.다음을 지정할 때@types명령어로 패키지, 그것은 당신이 확정에서 선언 유형을 다운로드하고 있다는 것을 의미합니다.리포지토리를 입력했습니다.

-D 플래그:

이 명령은 또한 Node.js에 대한 유형을 자동으로 추가합니다.devDependencies의 섹션package.json다음 코드 스니펫에 표시된 것과 같은 파일:

{
  ...
  "devDependencies": {
    ...
    "@types/node": "^14.0.27"
  }
}

-Dflag는 유형이 다음에 가도록 보장합니다.devDependencies의 한 부분package.json파일 대신 파일을 사용합니다.dependencies부분.왜냐하면 이 패키지는 생산 중이 아닌 개발 중에만 필요하기 때문입니다.사용 안 함--save다른 답변에서 언급된 플래그, 그것은 유형 의존성을 추가하기 때문입니다.dependencies의 한 부분package.json불필요한 파일로 서버 설치를 부풀립니다.

바로 그거야!

이 질문이 오래된 질문인 것은 알지만, tsconfig.json 파일이 없거나 컴파일러 옵션에 "types" 속성 배열이 비어 있을 때 이 오류가 발생한다는 것을 알게 되었습니다.

아래 구성을 통해 문제를 해결할 수 있습니다.물론 @types/node가 필요합니다. 여기에 더 많은 유형을 추가할 수도 있습니다.

{
  "compilerOptions": {
    "types": ["node"]
  }
}

링크에 대한 자세한 정보를 볼 수 있습니다.

저도 같은 문제가 있어요.그것과 유사합니다: https://github.com/TypeStrong/ts-node/issues/216 .

다음을 사용하여 타이핑을 설치한 후:

typings install dt~node --global --save

그리고 나서 이것을 내 파일에 추가했습니다.

///<reference path="../typings/globals/node/index.d.ts"/>

그리고 갑자기 작동합니다.

Angular 12 프로젝트에서 IDE의 자동 완성 기능이 이 가져오기를 구성 요소 파일에 삽입했을 때 다음과 같은 문제가 발생했습니다.

import * as e from 'cors';

이 줄을 제거하면 문제가 해결됩니다.

언급URL : https://stackoverflow.com/questions/38434864/typescript-cannot-find-module-http-on-visual-studio-code

반응형