我知道我可以使用process.platform或os模块获取操作系统详细信息,但我也想知道操作系统是32位还是64位。
这可能吗?
答案 0 :(得分:11)
这比使用process.arch
简单得多。它将返回x64
或x32
,具体取决于架构。
答案 1 :(得分:3)
我会使用process.env['MACHTYPE']
或process.env['HOSTTYPE']
。如果其中一个是undefined
,那么请检查uname -m
(这应该适用于所有POSIX系统,
虽然输出实际上可以是任何字符串,see uname(1P))。
var exec = require('child_process').exec, arch;
exec('uname -m', function (error, stdout, stderr) {
if (error) throw error;
arch = stdout;
});
好吧,可能它并不像你想要的那么简短,但是你可能会发现很多shell脚本可以为你运行的任何系统做到这一点而你可以只运行这样的脚本。这样,您只需要运行一件事并检查Node应用程序的输出。
另一个解决方案是在C ++中为Node编写一个模块,该模块将检查低级系统功能,包括endianess和其他可能需要检查的内容。有很多关于如何检查这些事情的例子。
答案 2 :(得分:0)
如果您知道自己在类似Linux的系统中运行,则可以使用流程模块运行“uname -i”。如果输出包含'64',那么很有可能你使用的是64位系统。
这并不总是有效。
您想要检测到这个的任何特殊原因?也许另一种方法会更好。
答案 3 :(得分:0)
您只需在终端上运行此代码:
node -e "console.log(process.arch)"
这将返回您的 Node 构建的架构。检查您是否在 MacOS 上的 Rosetta 2 中运行非常有用。