Angular require(操作系统)中的平台问题
我已经创建了一个爱奥尼亚3(A5)应用程序。我在Mac上运行这个节点webkit(NW.JS)应用程序。如果我在index.html脚本标记中写入并检查,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中的代码
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;