¿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?
Está buscando el módulo nativo del sistema operativo para Node.js:
v4: https://nodejs.org/dist/latest-v4.x/docs/api/os.html#os_os_platform
o v5: https://nodejs.org/dist/latest-v5.x/docs/api/os.html#os_os_platform
os.platform ()
Devuelve la plataforma del sistema operativo. Los valores posibles son ''darwin'', ''freebsd'', ''linux'', ''sunos'' o ''win32''. Devuelve el valor de process.platform.
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)'');