programing

TypeScript를 사용하여 VS 코드에서 모듈 "fs"를 찾는 방법

iphone6s 2023. 3. 13. 20:14
반응형

TypeScript를 사용하여 VS 코드에서 모듈 "fs"를 찾는 방법

맥북 에어로 달리고 있어요.VS Code를 IDE로 설치하고 Type Script도 설치했습니다.

다음 행만 있는 간단한 파일이 있습니다.

import fs = require('fs');

괄호 안의 'fs' 아래에 빨간색 꼬불꼬불한 메시지가 표시되고 오류 메시지는 다음과 같습니다.[ts] Cannot find module 'fs'.파일의 확장자는 .ts입니다.자바스크립트와 타입스크립트는 처음이지만fs핵심 모듈인데 어떻게 못 찾을 수가 있지?문제를 해결하려면 어떻게 해야 하나요?

이미 시도해 본 다른 것들:

  • 파일에 간단한 함수 본문을 삽입한 후 명령줄에 컴파일하여tsc. 기본적으로 동일한 오류가 나타납니다.error TS2307: Cannot find module 'fs'.
  • 명령줄에서sudo npm install fs -g이 리포트는 성공했다고 보여도 문제는 해결되지 않습니다.

SE와 웹을 살펴봤지만, 가까운 것 같은 답변은 모두 fs를 사용할 수 있다고 가정한 것 같습니다.

노드의 정의 파일을 포함해야 합니다.

TypeScript 2.0 이상

npm을 사용하여 설치:

npm install --save-dev @types/node

TypeScript < 2.0

입력을 사용하는 경우 다음 명령을 실행할 수 있습니다.

typings install dt~node --global --save

또는 1.0 미만의 입력을 사용하는 경우 다음을 수행합니다.

typings install node --ambient --save

또는 다른 모든 작업이 실패하면 여기에서 파일을 수동으로 다운로드하여 프로젝트에 포함합니다.

이전 tsd나 타이핑 툴을 사용하지 않아도 더 나은 방법이 있습니다.NPM 에는, 타이프 스크립트의 @types 패키지가 있습니다.이 예에서는 패키지가 필요합니다.@types/node:

npm install "@types/node" --save-dev

save-dev 옵션을 사용하여 유형을 실제 가동 모드가 아닌 개발 모드로만 설치하십시오.npm install "@types/" 구문을 사용하는 경우 최신 노드 라이브러리가 필요합니다.

이전 툴이 최신 node.d.ts 정의 파일을 사용하지 않을 가능성이 높기 때문에 fs 패키지를 찾을 수 없습니다.

이러한 유형의 패키지를 검색하려면 tsconfig.json 파일을 업데이트해야 합니다.예를 들어 jquery, jqueryui 및 노드 유형을 사용하는 경우.코드 에디터(이 경우 'atom' 코드 에디터)에도 구문이 필요하다고 가정합니다.

{
"compileOnSave": false,
"compilerOptions": {
    "rootDir": "src",
    "sourceMap": true,
    "target": "es5",
    "module": "amd",
    "declaration": false,
    "noImplicitAny": false,
    "removeComments": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "moduleResolution": "node",
    "lib": ["es2015", "dom"],
    "baseUrl": "./",
    "typeRoots": [
        "node_modules/@types"
    ],
    "types": [
        "jquery",
        "jqueryui",
        "node"
    ],
    "paths": {
        "src/*": ["src/*"]
    }
},
"exclude": [
    "node_modules",
    "dist",
    "build"
],
"filesGlob": [
    "./src/**/*.ts",
    "./test/**/*.ts",
    "./typings/index.d.ts",
    "./custom_typings/**/*.d.ts",
    "./node_modules/@types/**/*.d.ts"
],
"atom": {
    "rewriteTsconfig": false
}
}

"fs"는 핵심 노드 모듈로, 당신의 Import 스테이트먼트 구문이 조금 잘못된 것 같습니다.시험:

import * as fs from "fs";

tsconfig.json에서 필요한 것은 "module Resolution"을 "node"로 설정하는 것입니다.

{
  "compilerOptions": {
      ...
      "moduleResolution": "node"
      ...
  }
}

실행하다

npm install @types/node --save-dev

이제 표준 TypeScript Import를 사용할 수 있습니다.

import * as fs from "fs";

세 요.tsconfig.json(여기서: Node 11+), 다음 문서를 참조하십시오.

둘 중 하나를 지정한다.typeRoots ★★★★★★★★★★★★★★★★★」types,만.typeRoots또는 양쪽 라인을 완전히 삭제합니다(권장).

{"compilerOptions": {
  ...
  "typeRoots": ["node_modules/@types"],  // "typeRoots": [] -> won't work
  "types": ["node"]                      // "types": [] -> won't work
}}

설치 유형:

npm install --save-dev @types/node

약속 기반 파일 시스템 사용(비동기/대기 사용 등):

import {promises as fs} from 'fs';

async function foo() {
    ...
    await fs.writeFile('./yourPath', 'YourContent');
}

Typescript는 표기법에 따라 모듈에 대해 알고 있습니다.자세한 내용은 Module resolution을 참조하십시오.

에 대해서도 IDE에 알기 fs node.module, "node.module", "node.module", "node.module", "node.module", "node.module", "node.module"에 대한

github 문제도 체크해 주세요.

이 일은 내 편이다

 const fs = require('fs') as typeof import('fs');

vitejs를 사용하는 nwjs의 경우

 const fs = nw.require('fs') as typeof import('fs');

""가 됩니다.any

언급URL : https://stackoverflow.com/questions/37260901/how-to-find-module-fs-in-vs-code-with-typescript

반응형