Если узел установлен и исполняется, вы можете просто запустить
c:\> node -p "process"
и вы должны увидеть processотформатированное содержимое переменной. Там ключи archи platformуказывают вашу операционную систему. В примере ниже этоWindows 7 x64
Что platformговорит? Разве arch: x64, platform: win32вы не используете 32-битный узел на 64-битном процессоре?
sampathsris
2
@Krumia: Ну, «win32» часто относится к API, который Windows NT представила (и Windows 9x позже реализовала [часть]) под этим именем для 32-битных программ. Когда позже MS адаптировала API для поддержки как 32-битных, так и 64-битных программ, это, естественно, привело к тому, что первоначальное название «win32» стало несколько запутанным, поскольку теперь люди иногда используют его для обозначения 32-битного варианта API. или конкретно к i386 ABI; следовательно, называть этот API "win32" несколько вышло из моды. Однако он все еще используется даже для 64-разрядной версии API.
SamB
@Krumia: Суть всего этого: очень вероятно, что win32ничего не говорит о том, для какого набора инструкций создан node.js. Кроме того, вполне вероятно, что это x64означает, что это на самом деле 64-разрядная сборка. (В любом случае, это обязательно будет 64-битная ОС, поскольку вы не можете запускать x64-бинарные файлы в 32-битной ОС.)
SamB,
30
Если он работает в ОС Windows, просто следуйте старой школе ... с помощью диспетчера задач Windows .
Вот моя попытка: -
Просто запустите nodeиз командной строки.
C:\> node
Это переведет узел в режим REPL (обозначен >символом). Теперь откройте диспетчер задач (Ctrl + Shift + Esc), чтобы увидеть node.exeдетали процесса. Моя работает на 64-битной Windows 10 с установленным 32-битным узлом. Убедитесь, что вы включили столбец «Платформа», чтобы видеть 32- / 64-разрядную информацию.
Я тестировал 64-битную Windows 10 с node.js 6.4.0 32bit, и он вернулся ia32, так что это не архитектура ОС
Бернардо Рамос
3
The os.arch() method returns a string identifying the operating system CPU architecture for which the Node.js binary was compiled.Источник @grisevg : nodejs.org/api/os.html#os_os_arch
Андре Верланг
4
Что ж, способ, который я предлагаю, совсем не лучший. Вы можете перейти к C: затем перейти в Program Files и найти там папку nodejs. Если он найден, значит, вы используете 64-битную версию, иначе проверьте Program Files (x86). Если он там найден, значит у вас 32-битная версия.
Узел js мог быть установлен в системе когда-то в прошлом в произвольном месте. В таком случае это вообще не решение.
Megha Dev
2
Скорее всего, это не решит вашу проблему напрямую, поскольку я не знаю, как лучше всего добиться такого же поведения в Windows, но использование fileкоманды в системе Unix или Linux расскажет вам архитектуру процессора исполняемого файла:
Если у вас установлен Cygwin, я почти уверен, что он предоставляет fileкоманду, иначе вы можете проверить в Интернете аналогичные программы, которые работают в Windows.
Используя fileкоманду из GnuWin32, я получаю PE32+ executable for MS Windows (console) Mono/.Net assemblyдля 64-битных программ, а PE32 executable for MS Windows (console) Intel 80386 32-bitдля 32-битных программ
даниэль куллманн
1
Просто запустите интерпретатор узлов, запустив node. затем в process.envнем выдается json со всей необходимой информацией. Моя попытка имеетPROCESSOR_ARCHITECTURE: 'AMD64' запись в этом.
Ответы:
Запустите это из командной строки:
node -p "process.arch"
Он вернет arm, ia32 или x64.
источник
Если узел установлен и исполняется, вы можете просто запустить
c:\> node -p "process"
и вы должны увидеть
process
отформатированное содержимое переменной. Там ключиarch
иplatform
указывают вашу операционную систему. В примере ниже этоWindows 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 : { ... } }
источник
require ('os');
platform
говорит? Развеarch: x64, platform: win32
вы не используете 32-битный узел на 64-битном процессоре?win32
ничего не говорит о том, для какого набора инструкций создан node.js. Кроме того, вполне вероятно, что этоx64
означает, что это на самом деле 64-разрядная сборка. (В любом случае, это обязательно будет 64-битная ОС, поскольку вы не можете запускать x64-бинарные файлы в 32-битной ОС.)Если он работает в ОС Windows, просто следуйте старой школе ... с помощью диспетчера задач Windows .
Вот моя попытка: -
Просто запустите
node
из командной строки.C:\> node
Это переведет узел в режим REPL (обозначен
>
символом). Теперь откройте диспетчер задач (Ctrl + Shift + Esc), чтобы увидетьnode.exe
детали процесса. Моя работает на 64-битной Windows 10 с установленным 32-битным узлом. Убедитесь, что вы включили столбец «Платформа», чтобы видеть 32- / 64-разрядную информацию.источник
Select columns
в Mac
$ node > require('os').arch()
в окнах
c:\> node > require('os').arch()
источник
ia32
, так что это не архитектура ОСThe os.arch() method returns a string identifying the operating system CPU architecture for which the Node.js binary was compiled.
Источник @grisevg : nodejs.org/api/os.html#os_os_archЧто ж, способ, который я предлагаю, совсем не лучший. Вы можете перейти к C: затем перейти в Program Files и найти там папку nodejs. Если он найден, значит, вы используете 64-битную версию, иначе проверьте Program Files (x86). Если он там найден, значит у вас 32-битная версия.
источник
Скорее всего, это не решит вашу проблему напрямую, поскольку я не знаю, как лучше всего добиться такого же поведения в Windows, но использование
file
команды в системе Unix или Linux расскажет вам архитектуру процессора исполняемого файла:$ file `which node` /usr/local/bin/node: Mach-O 64-bit executable x86_64
Если у вас установлен Cygwin, я почти уверен, что он предоставляет
file
команду, иначе вы можете проверить в Интернете аналогичные программы, которые работают в Windows.источник
file
команду из GnuWin32, я получаюPE32+ executable for MS Windows (console) Mono/.Net assembly
для 64-битных программ, аPE32 executable for MS Windows (console) Intel 80386 32-bit
для 32-битных программПросто запустите интерпретатор узлов, запустив
node
. затем вprocess.env
нем выдается json со всей необходимой информацией. Моя попытка имеетPROCESSOR_ARCHITECTURE: 'AMD64'
запись в этом.Я также нахожу
ProgramFiles: 'C:\\Program Files', 'ProgramFiles(x86)': 'C:\\Program Files (x86)'
ProgramW6432: 'C:\\Program Files'
источник
Введите узел REPL, используя команду «узел».
Приглашение изменится на>
Затем используйте следующее, чтобы получить желаемую информацию:
источник