Я пишу пару сценариев оболочки node для использования при разработке на платформе. У нас есть как Mac, так и Windows. Есть ли переменная, которую я могу проверить в node для запуска .sh файла в одном экземпляре и .bat в другом?
Как определить текущую операционную систему с помощью Node.js
Ответ 1
Переменная для использования будет process.platform
На Mac переменная возвращает darwin
. В Windows он возвращает win32
(даже в 64-битной версии).
Возможные значения: "darwin", "freebsd", "linux", "sunos" или "win32"
Я просто установил это в верхней части моего jakeFile:
var isWin = process.platform === "win32";
Ответ 2
Вы ищете собственный модуль ОС для Node.js:
v4: https://nodejs.org/dist/latest-v4.x/docs/api/os.html#os_os_platform
или v5: https://nodejs.org/dist/latest-v5.x/docs/api/os.html#os_os_platform
os.platform()
Возвращает платформу операционной системы. Возможные значения: "darwin", "freebsd", "linux", "sunos" или "win32". Возвращает значение process.platform.
Ответ 3
С Node.js v6 (и выше) имеется выделенный модуль os
, который предоставляет ряд связанных с операционной системой методов.
На моем компьютере с Windows 10 он сообщает следующее:
var os = require('os');
console.log(os.type()); // "Windows_NT"
console.log(os.release()); // "10.0.14393"
console.log(os.platform()); // "win32"
Здесь вы можете прочитать полную документацию: https://nodejs.org/api/os.html
Ответ 4
Это прекрасно работает для меня
var osvar = process.platform;
if (osvar == 'darwin') {
console.log("you are on a mac os");
}else if(osvar == 'win32'){
console.log("you are on a windows os")
}else{
console.log("unknown os")
}
Ответ 5
Процесс
var opsys = process.platform;
if (opsys == "darwin") {
opsys = "MacOS";
} else if (opsys == "win32" || opsys == "win64") {
opsys = "Windows";
} else if (opsys == "linux") {
opsys = "Linux";
}
console.log(opsys) // I don't know what linux is.
Операционные системы
const os = require("os"); // Comes with node.js
console.log(os.type());
Ответ 6
когда вы используете 32bits node в 64-битных окнах (например, node -webkit или разработчики shell-оболочки), process.platform будет эхо win32
использовать
function isOSWin64() {
return process.arch === 'x64' || process.env.hasOwnProperty('PROCESSOR_ARCHITEW6432');
}
(подробнее здесь)
Ответ 7
const path = require('path');
if (path.sep === "\\") {
console.log("Windows");
} else {
console.log("Not Windows");
}
Ответ 8
У меня работает нормально
if (/^win/i.test(process.platform)) {
// TODO: Windows
} else {
// TODO: Linux, Mac or something else
}
Модификатор я используется для сопоставления без учета регистра.
Ответ 9
var isWin64 = process.env.hasOwnProperty('ProgramFiles(x86)');