¿Cómo determinar si tengo un ejecutable de nodo de 64 bits o de 32 bits instalado?

90

En mi pc con Windows tengo instalado nodejs. Me gustaría determinar si es de 64 bits o de 32 bits. ¿Cómo se puede determinar eso? Yo ejecuté

node --help

pero eso no parece tener ninguna opción para darme la información deseada.

runtimeZero
fuente
coderwall.com/p/0eds7q No estoy seguro de si ayuda, ya que solo señala el arco del sistema operativo.
Silviu Burcea

Respuestas:

111

Ejecute esto desde la línea de comando:

node -p "process.arch"

Devolverá 'arm', 'ia32' o 'x64'.

Chet
fuente
Funcionó como un encanto en Win 10.
Machado
¡Trabajado como un encanto!
Gásten
61

Si el nodo está instalado y es ejecutable, simplemente puede ejecutar

c:\> node -p "process"    

y debería ver el contenido de la processvariable formateada. Allí las claves arche platformindica su sistema operativo. En el siguiente ejemplo, es unWindows 7 x64

{
    title : 'Administrator: C:\\Windows\\System32\\cmd.exe - node  ',
    version : 'v0.10.36',
    moduleLoadList :
    [   'Binding evals',
        ...
        'Binding signal_wrap',
        'NativeModule string_decoder'],
    versions : {
        http_parser : '1.0',
        node : '0.10.36',
        v8 : '3.14.5.9',
        ares : '1.9.0-DEV',
        uv : '0.10.30',
        zlib : '1.2.8',
        modules : '11',
        openssl : '1.0.1l'
    },
    arch : 'x64',
    platform : 'win32',
    argv : ['node'],
    execArgv : [],
    env : {
        ALLUSERSPROFILE : 'C:\\ProgramData',
        HOMEDRIVE : 'C:',
        JAVA_HOME : 'C:\\Program Files\\Java\\jdk1.8.0_05',
        NODEJS : 'C:\\Program Files (x86)\\nodejs\\',
        NUMBER_OF_PROCESSORS : '4',
        OS : 'Windows_NT',
        Path : 'C:\\ProgramData\\Oracle\\Java\\javapath;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;',
        PATHEXT : '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY',
        PROCESSOR_ARCHITECTURE : 'AMD64',
        PROCESSOR_IDENTIFIER : 'Intel64 Family 6 Model 42 Stepping 7, GenuineIntel',
        PROCESSOR_LEVEL : '6',
        PROCESSOR_REVISION : '2a07',
        ProgramData : 'C:\\ProgramData',
        ProgramFiles : 'C:\\Program Files', 
        'ProgramFiles(x86)' : 'C:\\Program Files (x86)',
        ProgramW6432 : 'C:\\Program Files',
        PROMPT : '$P$G',
        PUBLIC : 'C:\\Users\\Public',
        PYTHON : 'C:\\Python34',
        SESSIONNAME : 'Console',
        SystemDrive : 'C:',
        SystemRoot : 'C:\\Windows',
        windir : 'C:\\Windows',
        windows_tracing_flags : '3'
    },
    features : {
        ...
    },
    config : {
        ...
    }
}
Sven 31415
fuente
Buen trabajo, no se usarequire ('os');
andrew
3
¿Qué platformdice? ¿No arch: x64, platform: win32dice que está ejecutando un nodo de 32 bits en un procesador de 64 bits?
sampathsris
2
@Krumia: Bueno, "win32" a menudo se refiere a la API que introdujo Windows NT (y Windows 9x implementó posteriormente [un subconjunto de]) con ese nombre para programas de 32 bits. Cuando MS adaptó más tarde la API para admitir programas de 32 y 64 bits, esto naturalmente resultó en que el nombre original "win32" se volviera algo confuso, ya que ahora la gente lo usa a veces para referirse específicamente a la variante de 32 bits de la API. o al i386 ABI específicamente; en consecuencia, referirse a esta API como "win32" ha pasado de moda. Sin embargo, todavía se usa incluso para la versión de 64 bits de la API.
SamB
@Krumia: El punto de todo eso es: muy probablemente win32no indique nada sobre para qué está construido el conjunto de instrucciones node.js. Además, es probable que x64indique que se trata de una compilación de 64 bits. (De cualquier manera, seguramente será un sistema operativo de 64 bits, ya que no puede ejecutar binarios x64 en un sistema operativo de 32 bits)
SamB
29

Si está en el sistema operativo Windows, simplemente siga el camino de la vieja escuela ... usando el Administrador de tareas de Windows .

Aquí está mi intento:

Simplemente ejecute nodedesde el símbolo del sistema.

C:\> node

Esto pondrá el nodo en modo REPL (indicado por el >símbolo). Ahora abra el Administrador de tareas (Ctrl + Shift + Esc) para ver los node.exedetalles del proceso. El mío está en Windows 10 de 64 bits con el nodo de 32 bits instalado. Asegúrese de habilitar la columna 'Plataforma' para ver información de 32 bits / 64 bits.

ingrese la descripción de la imagen aquí

onelaview
fuente
4
a partir de Windows 10 esto parece faltar.
Meirion Hughes
2
@MeirionHughes no, debe agregar específicamente esta columna a la vista. Haga clic derecho en cualquier columna y seleccioneSelect columns
Maria Ines Parnisari
23

en mac

$ node
 > require('os').arch()

en ventanas

c:\> node
> require('os').arch()
HDK
fuente
3
Eso le da a la arquitectura del sistema operativo, no nodo de
grisevg
3
Probé en Windows 10 64bit con node.js 6.4.0 32bit y regresó ia32, por lo que no es la arquitectura del sistema operativo
Bernardo Ramos
3
@grisevg The os.arch() method returns a string identifying the operating system CPU architecture for which the Node.js binary was compiled.fuente: nodejs.org/api/os.html#os_os_arch
André Werlang
4

Bueno, la forma en que estoy sugiriendo no es en absoluto buena. Puede ir a C: luego ir a Archivos de programa y buscar la carpeta nodejs allí. Si lo encuentra, entonces está ejecutando la versión de 64 bits; de lo contrario, verifique en Archivos de programa (x86). Si se encuentra allí, entonces está ejecutando la versión de 32 bits.

meShakti
fuente
1
El nodo js podría haberse instalado en el sistema en algún momento del pasado en una ubicación personalizada. En ese caso, esta no es la solución en absoluto.
Megha Dev
2

Es probable que esto no resuelva directamente su problema, ya que no conozco la mejor manera de obtener el mismo comportamiento en Windows, pero usar el filecomando en un sistema Unix o Linux le dirá la arquitectura del procesador de un ejecutable:

$ file `which node`
/usr/local/bin/node: Mach-O 64-bit executable x86_64

Si tiene Cygwin instalado, estoy bastante seguro de que proporciona un filecomando, o puede buscar en línea programas similares que funcionen en Windows.

jez
fuente
Usando el filecomando de GnuWin32, obtengo PE32+ executable for MS Windows (console) Mono/.Net assemblypara programas de 64 bits y PE32 executable for MS Windows (console) Intel 80386 32-bitpara programas de 32 bits
daniel kullmann
1

Simplemente inicie el intérprete de nodos ejecutando node. luego, en eso, process.envda un json con toda la información que necesita. Mi intento tiene una PROCESSOR_ARCHITECTURE: 'AMD64'entrada en eso.

Yo tambien encuentro

ProgramFiles: 'C:\\Program Files', 'ProgramFiles(x86)': 'C:\\Program Files (x86)' ProgramW6432: 'C:\\Program Files'

Siva Tumma
fuente
1
AFAIK, esto solo te dice de lo que es capaz tu procesador; si el valor es AMD64, aún puede ejecutar programas de 32 bits.
daniel kullmann
0

Ingrese el REPL del nodo usando el comando 'nodo'.

El mensaje cambiará a>

Luego use lo siguiente para obtener la información deseada:

  1. require ('proceso'). arch ==> esto dará la versión de la arquitectura del nodo.
  2. require ('proceso'). plataforma ==> esto le dará la arquitectura de la plataforma de compilación
  3. require ('proceso'). release y require ('proceso'). release.libUrl ==> también da información sobre la versión y arquitectura
  4. require ('proceso'). config.variables.host_arch ==> esto también dará la versión de la arquitectura del nodo.
Debajyoti Dutta
fuente