gpt4 book ai didi

node.js - 使用 Electron 在 Angular 2 应用程序中访问文件系统

转载 作者:太空狗 更新时间:2023-10-29 17:13:01 25 4
gpt4 key购买 nike

我知道 Angular 2 是在网络浏览器上运行的,它无法访问文件系统。

但是,我使用 Electron 作为我的前端,并且还通过 electron 运行应用程序:

"build-electron": "ng build --base-href . && cp src/electron/* dist",
"electron": "npm run build-electron && electron dist"

因此,我使用 npm run electron 运行它,它在最后运行 electron dist

由于我正在运行 electron 而不是 ng 我认为我应该能够访问文件系统。但是,当我这样做时:

从 'fs' 导入 * 作为 fs

我得到一个错误:

ng:///AppModule/AppComponent_Host.ngfactory.js:5 错误类型错误:__WEBPACK_IMPORTED_MODULE_0_fs__.readFileSync 不是一个函数(…)

同样,当我尝试:var fs = require('fs');

我得到:

ng:///AppModule/AppComponent_Host.ngfactory.js:5 错误类型错误:fs.readFileSync 不是函数

这是导致错误的调用:

this.config = ini.parse(fs.readFileSync('../../CONFIG.ini', 'utf-8'))

有人知道是什么原因造成的吗?

谢谢。

最佳答案

通过以下方式解决:

1) 弹出 webpack: ng eject

2) 添加 target: 'electron-renderer'webpack.config.js 内的 module.exports 数组

3) 需要远程,因为我们在 renderer 中,但是 fs 仅在 main process 中可用(Read more ): var remote = require('electron').remote;

4) Require fs(这次使用 remotes 实现 require):var fs = remote.require('fs');

现在可以了!

关于node.js - 使用 Electron 在 Angular 2 应用程序中访问文件系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45689376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com