我正在使用Angular 7。
我试图在Typescript上使用fs模块打开目录。 我总是遇到此错误:“找不到模块:错误:无法解析fs” 已经安装了types @ node和文件系统。
我的代码:
import {Component, OnInit} from '@angular/core';
import * as fs from 'file-system';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {
title = 'my-app';
constructor() {
}
ngOnInit() {
console.log(fs);
}
}
你能帮我吗?
节点:v10.14.0 Npm:v6.4.1 Angular CLI:v7.1.1
答案 0 :(得分:1)
fs
模块在 Angular 中不可用。使用下面的包来使用 fs
模块。
npm install file-system --save
示例:
var fs = require('file-system');
fs.mkdir('1/2/3/4/5', [mode], function(err) {});
fs.mkdirSync('1/2/3/4/5', [mode]);
fs.writeFile('path/test.txt', 'aaa', function(err) {})
答案 1 :(得分:0)
'fs'模块是Angular(或与此相关的任何其他框架)中不可用的节点模块。发生的情况是,已将Angular代码进行编译和最小化,并在浏览器上下文中运行,而不是在节点上下文中运行。浏览器被沙箱化,无法访问客户端文件系统。如果可能的话,比网络要危险得多:)。
答案 2 :(得分:0)
'fs'是NodeJS运行时的库,但是Angular管道捆绑程序的最终产品是在浏览器中运行的前端SPA客户端。如果您需要从用户的本地文件系统中将文件加载到客户端,则需要使用浏览器的本机变体,例如看看如何处理<input type="file">
元素。
答案 3 :(得分:0)
文件系统API用于后端JavaScript / TypeScript框架进行文件操作。出于安全原因,由于不允许浏览器修改客户端文件,因此无法将任何JavaScript前端库/框架用于文件操作。 因此,只有后端框架(如Node,Loopback,NestJs等)才能访问它。
答案 4 :(得分:-2)
尝试一下:
import * as fs from 'fs';
希望这会有所帮助。