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
'programing' 카테고리의 다른 글
| Typescript의 객체 배열에 걸쳐 반복 (0) | 2023.03.13 |
|---|---|
| env: mysql: 'wp import' 뒤에 해당 파일 또는 디렉토리가 없습니다. (0) | 2023.03.13 |
| 새 Wordpress 데이터베이스 테이블 작성 시도 중 (0) | 2023.03.13 |
| JSON 개체에서 요소 제거 (0) | 2023.03.13 |
| 웹 팩의 css로 인해 Mocha 테스트에 실패했습니다. (0) | 2023.03.13 |