Node.js 要求(';fs';)不使用角度和电子
我正在使用angular 6.0、electron 2.0、typescript 2.9、nodejs 9.11来制作一个使用electron框架的桌面应用程序。我正在努力从typescript代码访问NodeJS本机API。我在“tsconfig.app.json”文件中设置了“commonjs”。当我在属于angular应用程序的任何ts文件中写入:require('fs')或require('net')时,系统无法找到这些模块 到目前为止,只有一种解决办法奏效。事情是这样的。“native.js”中的第一个Node.js 要求(';fs';)不使用角度和电子,node.js,angular,typescript,electron,fs,Node.js,Angular,Typescript,Electron,Fs,我正在使用angular 6.0、electron 2.0、typescript 2.9、nodejs 9.11来制作一个使用electron框架的桌面应用程序。我正在努力从typescript代码访问NodeJS本机API。我在“tsconfig.app.json”文件中设置了“commonjs”。当我在属于angular应用程序的任何ts文件中写入:require('fs')或require('net')时,系统无法找到这些模块 到目前为止,只有一种解决办法奏效。事情是这样的。“native
window.fs = require('fs')
然后在polyfill.ts中:
declare global {
interface Window{
fs : any;
}
}
然后以window.fs
的形式访问代码库其余部分中的fs
虽然这是可以的,但它是不可伸缩的,就像我必须使用任何依赖于NodeJS本地API的库一样,那么该库必须通过这种机制导入
是否有其他解决方案允许通过正常的
require()
语法导入nodejs系统库 在我这方面,如果您使用typescript作为ref,那么这项工作就完成了。
import * as Fs from 'fs';
const fs: typeof Fs = window['require']('fs');
你需要辩护,否则你会被起诉的。
对于nwjs使用此选项,可以知道nodejs是全局的
const fs:typeof import('fs')=require('fs')代码>