Node.js获取/确定操作系统版本

时间:2013-02-20 20:15:49

标签: javascript node.js

我想确定一些正在执行的脚本是否正在运行特定版本的Mac OSX。我意识到我可以执行/生成命令:

sw_vers -productVersion

有没有办法在没有node-exec-sync的情况下同步执行此操作(类似于process.arch)?我意识到它是同步生成/执行的一种公认的坏习惯,但我没有看到另一种方式。

2 个答案:

答案 0 :(得分:27)

您可以像这样使用the OS module

var os = require('os');
os.platform(); // 'darwin'
os.release(); //'10.8.0'

然后将发布版本映射到特定版本的Mac OS X.

可以找到Darwin到Mac OS X映射here

答案 1 :(得分:2)

如上所述,在AndyD的回答中,os.release()返回内核版本。如果您想获得用户在"关于此Mac"中看到的相同版本号。用户界面,您可以阅读并解析/System/Library/CoreServices/SystemVersion.plist,如下所示:

const plist = require('plist');
let versionInfo = plist.parseFileSync('/System/Library/CoreServices/SystemVersion.plist');
console.log(JSON.stringify(versionInfo));

https://github.com/kevinsawicki/node-plist