require('os') 中的平台问题
Platform issue in require('os')
我创建了一个 Ionic 3(A5) 应用程序。我是 运行 Mac 上的 node-webkit (NW.JS) 应用程序。如果我在 index.html 脚本标签内写入并检查,require('os')
平台 returns 'darwin' 和 require('fs')
returns 已满正确设置对象。但是,如果我在 .ts 文件中编写相同的脚本 - require('os')
platform returns 'browser' 和 require('fs')
returns 空对象。
我在 devDependencies 中使用@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);
根据 The Jared Wilcurt @TheJaredWilcurt 在 gitter.im、
上的回复
Node 和 Chromium 不知道 TS 文件是什么。你需要使用一些东西来 运行 将它编译成实际上可以是 运行 的代码。 TS是一个meta-language,像Markdown,Sass,HAML,CoffeeScript,JSX等等,Node只懂JavaScript,Chromium只懂HTML,CSS,和JS。
如果您正在使用某些东西来 t运行spile 它并且它改变了您的 require 语句,那么这就是问题所在。您应该检查您告诉环境的实际代码 运行.
这是因为 Ionic t运行spiler 正在以某种方式更改代码。我更改了代码
来自
var os = require('os');
var fs = require('fs');
到
var os = nw.require('os');
var fs = nw.require('fs');
现在唯一的问题是 TypeScript 编译器无法识别“nw”,因为它应该在 运行 时间出现。我已添加
declare var nw: any;
在上面。
现在好了。
我创建了一个 Ionic 3(A5) 应用程序。我是 运行 Mac 上的 node-webkit (NW.JS) 应用程序。如果我在 index.html 脚本标签内写入并检查,require('os')
平台 returns 'darwin' 和 require('fs')
returns 已满正确设置对象。但是,如果我在 .ts 文件中编写相同的脚本 - require('os')
platform returns 'browser' 和 require('fs')
returns 空对象。
我在 devDependencies 中使用@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);
根据 The Jared Wilcurt @TheJaredWilcurt 在 gitter.im、
上的回复Node 和 Chromium 不知道 TS 文件是什么。你需要使用一些东西来 运行 将它编译成实际上可以是 运行 的代码。 TS是一个meta-language,像Markdown,Sass,HAML,CoffeeScript,JSX等等,Node只懂JavaScript,Chromium只懂HTML,CSS,和JS。 如果您正在使用某些东西来 t运行spile 它并且它改变了您的 require 语句,那么这就是问题所在。您应该检查您告诉环境的实际代码 运行.
这是因为 Ionic t运行spiler 正在以某种方式更改代码。我更改了代码
来自
var os = require('os');
var fs = require('fs');
到
var os = nw.require('os');
var fs = nw.require('fs');
现在唯一的问题是 TypeScript 编译器无法识别“nw”,因为它应该在 运行 时间出现。我已添加
declare var nw: any;
在上面。 现在好了。