node.js

¿Cómo determino el sistema operativo actual con Node.js



(8)

Con Node.js v6 (y más arriba) hay un módulo os dedicado, que proporciona varios métodos de utilidad relacionados con el sistema operativo.

En mi máquina con Windows 10, informa lo siguiente:

var os = require(''os''); console.log(os.type()); // "Windows_NT" console.log(os.release()); // "10.0.14393" console.log(os.platform()); // "win32"

Puede leer su documentación completa aquí: https://nodejs.org/api/os.html

Estoy escribiendo un par de scripts de shell de nodo para usarlos cuando se desarrollan en una plataforma. Tenemos desarrolladores de Mac y Windows. ¿Existe alguna variable que pueda verificar en Node para ejecutar un archivo .sh en una instancia y .bat en otra?



Esto funciona bien para mi

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


Funciona bien para mí

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

El modificador i se usa para realizar una coincidencia insensible a mayúsculas y minúsculas.


cuando está utilizando el nodo de 32 bits en las ventanas de 64 bits (como los desarrolladores node-webkit o atom-shell), process.platform reproducirá win32

utilizar

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

(marque here para más detalles)


La variable a usar sería process.platform

En Mac, la variable devuelve darwin . En Windows, devuelve win32 (incluso en 64 bits).

Los valores posibles son: ''darwin'', ''freebsd'', ''linux'', ''sunos'' o ''win32''

Acabo de configurar esto en la parte superior de mi jakeFile:

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


const path = require(''path''); if (path.sep === "//") { console.log("Windows"); } else { console.log("Not Windows"); }


var isWin64 = process.env.hasOwnProperty(''ProgramFiles(x86)'');