os.platform();
上面的JS指令返回OS的名稱。os.platform()返回達爾文而不是OSX
當在Ubuntu拼命地跑,它返回
'linux'
當上的Macbook拼命地跑,它返回
'darwin'
我想,爲什麼不回osx
,unix
或bsd
..?
darwin
是osx的一個分支嗎?
如何使用Node.js獲取MAC在MAC下的類型?
os.platform();
上面的JS指令返回OS的名稱。os.platform()返回達爾文而不是OSX
當在Ubuntu拼命地跑,它返回
'linux'
當上的Macbook拼命地跑,它返回
'darwin'
我想,爲什麼不回osx
,unix
或bsd
..?
darwin
是osx的一個分支嗎?
如何使用Node.js獲取MAC在MAC下的類型?
達爾文不是OSX,OSX是達爾文。
Darwin是OSX的核心,同樣的,Linux是Debian,Ubuntu和其他Linux發行版的核心。
由於開源項目已經結束,因此可以安全地假設一個標識爲Darwin的平臺是macOS(包括OSX),iOS,watchOS或tvOS,適用於mac,iPhone,apple watch和apple tv。
雖然你不能盲目地創建快捷方式darwin => OSX
,但是我不知道其他設備的任何node.js端口,所以如果你得到達爾文,你幾乎可以肯定它是一個macOS設備,但它可能是OSX以外的另一個版本。
達爾文是蘋果給OS X的原始名稱。它被命名爲這樣,因爲它是操作系統演進中的NeXT步驟。
Darwin是爲OS X底層平臺
要獲得OS X版本而不是,您可以通過命令行(或子處理)做到這一點:defaults read loginwindow SystemVersionStampAsString
或sw_vers -productVersion
要獲得通過C/C++版本(你可以寫一個結合從節點訪問):
// compile with: g++ osx_ver.cc -I/Developer/Headers/FlatCarbon -framework CoreServices
#include <Gestalt.h>
#include <stdio.h>
int main() {
SInt32 majorVersion, minorVersion, bugFixVersion;
Gestalt(gestaltSystemVersionMajor, &majorVersion);
Gestalt(gestaltSystemVersionMinor, &minorVersion);
Gestalt(gestaltSystemVersionBugFix, &bugFixVersion);
printf("%d.%d.%d", majorVersion, minorVersion, bugFixVersion);
return 0;
}
注:Gestalt()
我們上面顯示的年齡從OS X 10.8開始就被棄用了,但它的替代似乎在OS X 10.10之前是不可用的,所以您可能需要使用Objective-C([processInfo operatingSystemVersion]
)並在API可用性上進行分支,例如Chromium中的here。