358 votes

Comment déterminer le système d'exploitation actuel avec Node.js ?

Je suis en train d'écrire un couple de scripts shell node à utiliser lors du développement sur une plateforme. Nous avons à la fois des développeurs Mac et Windows. Y a-t-il une variable que je peux vérifier dans Node pour exécuter un fichier .sh dans une instance et .bat dans une autre ?

0 votes

Comme le module de combinaison Processus de l'enfant avec module OS ?

0 votes

Cela ressemble à un doublon de stackoverflow.com/questions/6551006/

0 votes

5voto

V. Kalyuzhnyu Points 1515

Cela fonctionne 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 une correspondance insensible à la casse.

3voto

user2404131 Points 11

Lorsque vous utilisez un nœud 32bits sur un Windows 64bits (comme les développeurs node-webkit ou atom-shell), process.platform affichera win32.

utiliser

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

(vérifier aquí pour plus de détails)

2voto

Shagun Pruthi Points 512

J'étais confronté au même problème en exécutant mon code node js sur une VM Windows sur une machine Mac. Le code suivant a fait l'affaire.

Remplacer

process.platform =='win32'

avec

const os = require('os') ;

os.platform() == 'win32' ;

1voto

Ziyu Zhou Points 93
var isWin64 = process.env.hasOwnProperty('ProgramFiles(x86)');

1voto

const path = require('path');

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X