Angular require(操作系统)中的平台问题

Angular require(操作系统)中的平台问题,angular,ionic3,require,nwjs,Angular,Ionic3,Require,Nwjs,我已经创建了一个爱奥尼亚3(A5)应用程序。我在Mac上运行这个节点webkit(NW.JS)应用程序。如果我在index.html脚本标记中写入并检查,require('os')platform返回“darwin”,require('fs')正确返回完整的对象集。但如果我在.ts文件中编写相同的脚本-require('os')platform返回“browser”,而require('fs')返回空对象 我在devdependences中使用@types/node index.html中的代码

我已经创建了一个爱奥尼亚3(A5)应用程序。我在Mac上运行这个节点webkit(NW.JS)应用程序。如果我在index.html脚本标记中写入并检查,
require('os')
platform返回“darwin”,
require('fs')
正确返回完整的对象集。但如果我在.ts文件中编写相同的脚本-
require('os')
platform返回“browser”,而
require('fs')
返回空对象

我在devdependences中使用@types/node

index.html中的代码-

 var os = require('os');
 var fs = require('fs');
 console.log('Log from index.html');
 console.log('platform = ' + os.platform());
 console.log('fs = ');
 console.log(fs);
app.component.ts中的代码-

var os = require('os');
var fs = require('fs');
console.log('Log from app.component.ts');
console.log('platform = ' + os.platform());
console.log('fs = ');
console.log(fs);

根据Jared Wilcurt@TheJared Wilcurt的回复

Node和Chromium不知道什么是TS文件。您需要使用一些东西将其传输到实际可以运行的代码中。TS是一种元语言,如Markdown、Sass、HAML、CoffeeScript、JSX等。Node只理解JavaScript,Chromium只理解HTML、CSS和JS。 如果您正在使用某些东西来传输它,并且它改变了您的require语句,那么这就是问题所在。您应该检查告诉环境运行的实际代码

之所以发生这种情况,是因为爱奥尼亚transpiler正在以某种方式更改代码。我改了密码

现在唯一的问题是TypeScript编译器没有识别出运行时应该出现的“nw”。我补充说

declare var nw: any;
在上面。 现在一切都好了

var os = nw.require('os');
var fs = nw.require('fs');
declare var nw: any;