Node.js, чтобы получить/определить версию ОС
Я хотел бы определить, выполняется ли какой-либо script под управлением определенной версии Mac OSX. Я понимаю, что могу выполнить команду exec/spwn:
sw_vers -productVersion
Есть ли способ сделать это синхронно (аналогично process.arch) без node-exec-sync? Я понимаю, что это была принятая неправильная практика, чтобы порождать/выполнять синхронно, но я не вижу другого способа.
Ответы
Ответ 1
вы можете использовать модуль ОС следующим образом:
var os = require('os');
os.platform(); // 'darwin'
os.release(); //'10.8.0'
а затем сопоставьте версию выпуска с определенной версией Mac OS X.
Отображения Darwin для Mac OS X можно найти здесь
Ответ 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