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?
Antworten
Zu viele Anzeigen?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";
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
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.
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());
- See previous answers
- Weitere Antworten anzeigen