Kev*_*vin 8 fs node.js electron angular
我知道Angular 2是在Web浏览器上运行的,它无法访问文件系统.
但是,我使用Electron作为我的前端,并通过电子运行应用程序:
"build-electron": "ng build --base-href . && cp src/electron/* dist",
"electron": "npm run build-electron && electron dist"
Run Code Online (Sandbox Code Playgroud)
因此,我运行它npm run electron在最后运行electron dist.
因为我正在运行electron而不是ng我认为我应该能够访问文件系统.但是,当我这样做时:
import * as fs from 'fs'
我收到一个错误:
ng:///AppModule/AppComponent_Host.ngfactory.js:5 ERROR TypeError: __WEBPACK_IMPORTED_MODULE_0_fs__.readFileSync is not a function(…)
同样,当我尝试: var fs = require('fs');
我明白了:
ng:///AppModule/AppComponent_Host.ngfactory.js:5 ERROR TypeError: fs.readFileSync is not a function
这是导致错误的调用:
this.config = ini.parse(fs.readFileSync('../../CONFIG.ini', 'utf-8'))
有谁知道是什么导致了这个?
谢谢.
解决方法:
1)弹出webpack: ng eject
2)添加target: 'electron-renderer'到module.exports数组里面webpack.config.js
3)需要远程,因为我们位于中renderer,但fs仅在main process(阅读更多)中可用:var remote = require('electron').remote;
4)Require fs(这次使用require的远程实现): var fs = remote.require('fs');
现在就可以了!
| 归档时间: |
|
| 查看次数: |
6596 次 |
| 最近记录: |