Comment puis-je déterminer le système d'exploitation actuel avec noeud.js

je suis en train d'écrire quelques scripts de Shell de noeud à utiliser lors du développement sur une plate-forme. Nous avons des développeurs Mac et Windows. Est-il une variable que je peux vérifier dans le Nœud pour exécuter une .sh fichier dans un cas et .chauve-souris dans une autre?

171
demandé sur abbotto 2011-12-31 00:42:31

8 réponses

la variable à utiliser serait process.platform

sur Mac la variable retourne darwin . Sous Windows, il retourne win32 (même sur 64 bits).

les valeurs possibles sont: 'darwin', 'freebsd', 'linux', 'sunos' ou 'win32 '

je viens de mettre ceci au sommet de mon jakeFile:

var isWin = process.platform === "win32";
327
répondu Mauvis Ledford 2018-02-04 02:38:21

vous recherchez le module natif OS pour Noeud.js:

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

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

os.plate-forme()

renvoie la plate-forme du système d'exploitation. Les valeurs possibles sont 'darwin', 'freebsd', 'linux', 'sunos" ou "win32". Renvoie la valeur du processus.plate.

41
répondu alessioalex 2016-03-24 09:33:02

Avec Noeud.js v6 (et au-dessus) il y a un module dédié os , qui fournit un certain nombre de méthodes d'utilité liées au système d'exploitation.

sur ma machine Windows 10 il rapporte ce qui suit:

var os = require('os');

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

vous pouvez lire la documentation complète ici: https://nodejs.org/api/os.html

30
répondu Benny Neugebauer 2016-11-30 13:47:31

lorsque vous utilisez un noeud 32bits sur des fenêtres 64bits(comme les développeurs de noeuds-webkit ou atom-shell), process.la plate-forme fera écho à 151920920"

utiliser

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

(cochez ici pour plus de détails)

4
répondu user2404131 2014-07-24 08:32:39

Cela Fonctionne très bien pour moi

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")
}
3
répondu Adeojo Emmanuel IMM 2018-05-08 13:59:41
const path = require('path');

if (path.sep === "\") {
console.log("Windows");
} else {
console.log("Not Windows");
}
2
répondu Alexander Koleda 2017-06-09 10:50:07
var isWin64 = process.env.hasOwnProperty('ProgramFiles(x86)');
1
répondu Ziyu Zhou 2015-04-28 10:42:21

fonctionne très bien pour moi

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

le modificateur i est utilisé pour effectuer l'appariement insensible à la casse.

1
répondu V. Kalyuzhnyu 2018-04-25 15:42:06