415 Stimmen

Wie kann ich das aktuelle Betriebssystem mit Node.js ermitteln?

Ich schreibe ein paar Node-Shell-Skripte für die Verwendung bei der Entwicklung auf einer Plattform. Wir haben sowohl Mac- als auch Windows-Entwickler. Gibt es eine Variable, die ich in Node überprüfen kann, um eine .sh-Datei in einer Instanz und eine .bat-Datei in einer anderen auszuführen?

740voto

Mauvis Ledford Punkte 37866

Die zu verwendende Variable wäre process.platform

Auf dem Mac wird die Variable auf darwin . Unter Windows ist sie auf win32 (sogar auf 64 Bit).

Aktuell mögliche Werte sind:

  • aix
  • darwin
  • freebsd
  • linux
  • openbsd
  • sunos
  • win32
  • android (Experimentell, gemäß dem Link)

Ich habe dies einfach an den Anfang meiner jakeFile gesetzt:

var isWin = process.platform === "win32";

97voto

Benny Neugebauer Punkte 45468

Mit Node.js v6 (und höher) gibt es eine eigene os Modul, das eine Reihe von betriebssystembezogenen Dienstprogrammmethoden bereitstellt.

Auf meinem Windows 10-Rechner wird Folgendes gemeldet:

var os = require('os');

console.log(os.type()); // "Windows_NT"
console.log(os.release()); // "10.0.14393"
console.log(os.platform()); // "win32"

Die vollständige Dokumentation können Sie hier lesen: https://nodejs.org/api/os.html#os_os_type

56voto

alessioalex Punkte 60195

Sie sind auf der Suche nach dem OS-nativen Modul für Node.js:

v4: https://nodejs.org/dist/latest-v4.x/docs/api/os.html#os_os_platform

oder v5 : https://nodejs.org/dist/latest-v5.x/docs/api/os.html#os_os_platform

os.plattform()

Gibt die Plattform des Betriebssystems zurück. Mögliche Werte sind 'darwin', 'freebsd', 'linux', 'sunos' oder 'win32'. Gibt den Wert von process.platform zurück.

31voto

Jaidee Punkte 813

Prozess

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.

OS

const os = require("os"); // Comes with node.js
console.log(os.type());

8voto

Das funktioniert bei mir gut

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")
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X