我正在尝试编写一个基于电子的Angular应用程序,该应用程序使用EdgeJs与某些现有的旧业务逻辑c#dll进行对话,并且我一直以this excellent boilerplate app作为起点。几个小时后,我设法使所有功能正常运行,但是由于webpack,我遇到了一些麻烦,并且想知道是否有人知道解决方案或可以为我指明更好的方向。
正如我在此过程中发现的那样,angular-cli(或默认情况下为webpack)已将webpack构建设置为模拟或填充EdgeJS使用的NodeJS API调用(__dirname,fs以及其他可能使用的) Webpack docs
当我尝试在Angular服务中执行以下操作时,遇到了很多无法找到或解决fs
模块的异常情况
edge.service.ts
import { Injectable } from '@angular/core';
import * as edge from 'electron-edge-js';//throws errors
@Injectable()
export class EdgeExampleService {
constructor(){
//let edge = require('electron-edge-js');//will also throw errors
}
}
我可以通过在 index.html 内执行let edge = require('electron-edge-js')
来解决这些错误,因为该错误是通过电子直接加载而不是通过webpack加载的。虽然这确实使EdgeJ正常工作,但我还是希望将所有导入都保存在TypeScript文件中,并使其不在全局范围内。
我没有问题 ng弹出,但是由于我不熟悉webpack,所以我不知道从哪里开始进行这种更改。任何人都对我需要进行哪些更改以防止webpack嘲笑/填充NodeJS API有任何想法?