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?

5voto

Vlad Punkte 6631

Funktioniert gut für mich

if (/^win/i.test(process.platform)) {
    // TODO: Windows
} else {
    // TODO: Linux, Mac or something else
}

Der i-Modifikator wird verwendet, um die Groß- und Kleinschreibung nicht zu berücksichtigen.

3voto

user2404131 Punkte 55

Wenn Sie 32-Bit-Node auf 64-Bit-Windows verwenden (wie Node-Webkit- oder Atom-Shell-Entwickler), gibt process.platform das Echo win32 aus.

verwenden.

    function isOSWin64() {
      return process.arch === 'x64' || process.env.hasOwnProperty('PROCESSOR_ARCHITEW6432');
    }

(Prüfung aquí für Details)

2voto

const path = require('path');

if (path.sep === "\\") {
console.log("Windows");
} else {
console.log("Not Windows");
}

2voto

Shagun Pruthi Punkte 1613

Ich war mit dem gleichen Problem konfrontiert, die meine Node-Js-Code auf Windows VM auf Mac-Maschine. Der folgende Code hat den Trick gemacht.

Ersetzen Sie

process.platform == 'win32'

mit

const os = require('os');

os.platform() == 'win32';

1voto

Ziyu Zhou Punkte 1649
var isWin64 = process.env.hasOwnProperty('ProgramFiles(x86)');

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