错误 TS2307:找不到模块“fs”或其相应的类型声明
Posted
技术标签:
【中文标题】错误 TS2307:找不到模块“fs”或其相应的类型声明【英文标题】:error TS2307: Cannot find module 'fs' or its corresponding type declarations 【发布时间】:2021-04-08 13:10:25 【问题描述】:我正在尝试在我的 ts 组件中导入 fs 模块
import * as fs from 'fs';
我需要它们来使用方法writeFile
,因为我想从 html 表单中获取数据并将其写入 JSON 文件。
但是控制台向我抛出了这个错误:
error TS2307: Cannot find module 'fs' or its corresponding type declarations.
new-card.component.ts
import Component, OnInit from '@angular/core';
import jCardList from '../mock-cards.json';
import Card from '../ICard';
import FormBuilder, FormGroup, Validators from '@angular/forms';
import * as fs from 'fs';
@Component(
selector: 'app-new-card',
templateUrl: './new-card.component.html',
styleUrls: ['./new-card.component.css']
)
export class NewCardComponent implements OnInit
fg: FormGroup;
constructor(private fb:FormBuilder)
this.fg = this.fb.group(
id: [value: 1, disabled: true,[Validators.required]],
nome: [value: null, disabled: false,[Validators.required]],
manaCost:[value: null, disabled: false,[Validators.required]],
colorIdentity:[value: null, disabled: false,[Validators.required]],
type:[value: null, disabled: false,[Validators.required]],
subType:[value: null, disabled: false],
effect:[value: null, disabled: false],
att:[value: null, disabled: false],
def:[value: null, disabled: false],
price:[value: null, disabled: false],
);
new-card.component.html
<div>
<form [formGroup]="fg" (ngSubmit)="onClick(fg)" >
<table>
<tr>
<td>Id !:</td>
<td><input type="number" id="Id" formControlName="id"></td>
</tr>
<tr>
<td>Nome !:</td>
<td><input formControlName="nome"></td>
</tr>
<tr>
<td>Costo in mana !:</td>
<td><input type="number" id="manaCost" formControlName="manaCost"></td>
</tr>
<tr>
<td>Colore !:</td>
<td><input id="colorIdentity" formControlName="colorIdentity"></td>
</tr>
<tr>
<td>Tipo !:</td>
<td><input id="tipe" formControlName="type"></td>
</tr>
<tr>
<td>Sottotipo:</td>
<td><input id="subTipe" formControlName="subType"></td>
</tr>
<tr>
<td>Effetto:</td>
<td><input id="effect" formControlName="effect"></td>
</tr>
<tr>
<td>Forza:</td>
<td><input type="number" id="att" formControlName="att"></td>
</tr>
<tr>
<td>Costituzione:</td>
<td><input type="number" id="def" formControlName="def"></td>
</tr>
<tr>
<td>Prezzo:</td>
<td><input type="number" id="price" formControlName="price"></td>
</tr>
</table>
<button type="submit" [disabled]="fg.invalid" >Conferma</button>
</form>
</div>
我已经尝试使用npm install @types/node --save-dev
并在compilerOptions "types": ["node"],"typeRoots": ["node_modules/@types"],
中添加到文件tsconfig.json
因此,如果有人可以帮助我解决此错误或给我不同的解决方案,我会很高兴。
【问题讨论】:
你不能在前端使用fs
。
【参考方案1】:
fs
它是Node.js中的一个内置包,它是服务器端的。您的代码是客户端的,您不能使用它。
【讨论】:
以上是关于错误 TS2307:找不到模块“fs”或其相应的类型声明的主要内容,如果未能解决你的问题,请参考以下文章
找不到模块“graphql/tsutils/Maybe”或其相应的类型声明
带有 Yarn、TypeScript 和 React Native 的 Lerna:找不到模块“@project/common”或其对应的类型声明。ts(2307)
TypeScript + moment.js:错误 TS2307:找不到模块'moment'