我正在使用electron-edge-js制作一个Electron Angular应用程序,以避免必须运行服务器在Angular和C#代码之间转换。只要我实际上不调用 edge 来做任何事情,该应用程序就可以工作,但(在构建时(失败:
Module not found: Error: Can't resolve 'fs' (or 'path') in ... node_moduleselectron-edge-jslib.
我已经尝试了我能在网上找到的所有解决方案。我使用了angular-builders\custom-webpack,并且能够构建应用程序,但是我得到的下一个错误是"未定义require"。
代码可以在这里找到:https://github.com/pdpete/AngularElectronEdgeQuickstart
在 app.component.ts 中:
import { Component } from '@angular/core';
import * as Edge from 'electron-edge-js';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'The Wrong App Name';
// if this is commented out, the app works fine, but with 'The Wrong App Name'
constructor() {
var getAppName = Edge.func({
assemblyFile: "Controller.dll",
typeName: "Controller.NameController",
methodName: "GetName"
});
getAppName(null, function (error, result) {
if (error) throw error;
console.log(result);
this.title = result;
});
}
}
据我所知,经过大量研究,Angular 5 及更高版本不允许访问 fs(或其他节点模块(,因此不可能编写具有 Angular 版本> 5 的 Edge 应用程序。