要求(' fs')不使用角度和电子

时间:2018-06-11 10:04:30

标签: node.js angular typescript electron fs

我使用角度6.0,电子2.0,打字稿2.9,nodejs 9.11来制作使用电子框架的桌面应用程序。我正在努力从typescript代码访问NodeJS本机API。我已经设置了" commonjs"在" tsconfig.app.json"文件。当我在任何作为角度应用程序一部分的ts文件中写道:require(' fs')或require(' net')时,系统无法找到那些模块。

目前只有一种解决方案可行。它是这样的。首先是' native.js'

window.fs = require('fs')

然后在polyfill.ts中:

declare global {
  interface Window{
    fs : any;
  }
}

然后在{+ 1}}的代码库的其余部分中访问fs

虽然这没关系,但它不可扩展,好像我必须使用任何依赖于NodeJS本机API的库,那么必须通过这种机制导入该库。

是否有任何其他解决方案让angular允许通过普通window.fs语法导入nodejs系统库?

2 个答案:

答案 0 :(得分:0)

import * as Fs from 'fs';
const fs: typeof Fs = window['require']('fs');

答案 1 :(得分:0)

在我这边,如果您使用打字稿作为参考,这项工作是可行的。 您需要进行辩护或将是任何。 将这个用于 nwjs,知道 nodejs 是全局的。

const fs: typeof import('fs') = require('fs');


enter image description here