Angular 7如何使用fs模块?

时间:2018-12-06 17:06:31

标签: angular typescript fs angular7

我正在使用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

5 个答案:

答案 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) {})

参考资料https://www.npmjs.com/package/file-system

答案 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';

希望这会有所帮助。