当我尝试使用writeFile
从fs导入angular时,然后我尝试运行ng serve
并得到ERROR in src/app/app.component.ts(2,27): error TS2307: Cannot find module 'fs'.
我想我在某个地方缺少一个简单的选项,例如当您想使用ng-model
时,您需要将formsModule
导入app.modules.ts
中。
我正在使用:
vscode: 1.34
Angular CLI: 8.0.1
Node: 10.15.3
OS: win32 x64
Angular: 8.0.0
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.800.1
@angular-devkit/build-angular 0.800.1
@angular-devkit/build-optimizer 0.800.1
@angular-devkit/build-webpack 0.800.1
@angular-devkit/core 8.0.1
@angular-devkit/schematics 8.0.1
@angular/cli 8.0.1
@ngtools/webpack 8.0.1
@schematics/angular 8.0.1
@schematics/update 0.800.1
rxjs 6.4.0
typescript 3.4.5
webpack 4.30.0
我的tsconfig
如下:
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"module": "esnext",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"importHelpers": true,
"target": "es2015",
"typeRoots": ["node_modules/@types"],
"lib": ["es2018", "dom"],
"types": ["node"]
}
}
答案 0 :(得分:4)
您是否在指代NodeJS模块fs
?如果是这样,则该模块仅在NodeJS运行时可用。
我假设您正在为网络编译Angular应用程序。如果是这样,请记住,浏览器没有fs
或任何其他Node模块;与Node没有fetch
或window
对象或API的方式相同。
作为应用程序捆绑过程的一部分,Angular编译器无法将fs
解析为引用的程序包或已知的Web API,从而导致出现您看到的消息。
如果您需要类似客户端的文件功能,请考虑使用类似的Web API,例如localStorage
。
https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
如果需要对磁盘和文件系统的低级访问,则需要一些“后端”运行时/ SDK /语言,例如NodeJS,Python等。
您可以使用客户端Javascript处理文件。您只需要在浏览器允许的范围内工作即可。例如,您可以使用<input type="file">
标签然后处理FileList
对象来访问文件的内容。
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file
类似地,您可以启动客户端“下载”以让用户保存文件。
答案 1 :(得分:1)
fs is only available in NodeJs runtime. If you want to read and write to a file locally using Angular please refer to
https://github.com/NativeScript/NativeScript/issues/4465#issuecomment-311618840