我想确定某个正在执行的脚本是否运行特定版本的Mac OSX。我知道我可以Exec的/产卵命令:Node.js获取/确定操作系统版本
sw_vers -productVersion
有没有办法做到这一点同步(类似于process.arch)无node-exec-sync?我意识到它是一种公认的不良做法,可以同步产生/执行,但我没有看到另一种方式。
我想确定某个正在执行的脚本是否运行特定版本的Mac OSX。我知道我可以Exec的/产卵命令:Node.js获取/确定操作系统版本
sw_vers -productVersion
有没有办法做到这一点同步(类似于process.arch)无node-exec-sync?我意识到它是一种公认的不良做法,可以同步产生/执行,但我没有看到另一种方式。
你可以使用the OS module这样的:
var os = require('os');
os.platform(); // 'darwin'
os.release(); //'10.8.0'
再发布版本映射到Mac OS X的特定版本
达尔文到Mac OS X的映射,可以发现here
正如AndyD的回答评论中提到的那样,os.release()
返回内核版本。如果你想获得一个用户看到的“关于本机” UI版本号相同,您可以读取和解析出/System/Library/CoreServices/SystemVersion.plist
,像这样:
const plist = require('plist');
let versionInfo = plist.parseFileSync('/System/Library/CoreServices/SystemVersion.plist');
console.log(JSON.stringify(versionInfo));
os.release是假想与提供内核版本的'uname -a'相同。例如,在OSX 10.8.2上,它返回12.2.0。我想我可以找到OSX版本的内核映射,但我认为这不太可靠。 – badunk 2013-02-20 20:47:09
那么,一旦获得了'os.platform()'值,就可以运行代码从其他平台特定的命令中获取实际的操作系统版本。 – 2013-02-20 21:23:29
添加链接到发布历史记录。 – AndyD 2013-02-20 23:04:42