首页 > 解决方案 > 要求('fs')不适用于角度和电子

问题描述

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

到目前为止,只有一种解决方案有效。它是这样的。首先在“native.js”中

window.fs = require('fs')

然后在 polyfill.ts 中:

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

然后fs在代码库的其余部分中以window.fs.

虽然这没问题,但它不可扩展,好像我必须使用任何依赖于 NodeJS 原生 API 的库,然后必须通过这种机制导入该库。

是否有任何其他解决方案让 angular 允许通过正常require(<module>)语法导入 nodejs 系统库?

标签: node.jsangulartypescriptelectronfs

解决方案


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

推荐阅读