为何64位系统下process.platform返回'win32'、os.arch()返回'ia32'?
问题原因拆解
别担心,这不是系统或者Node.js的bug,而是这两个API的设计逻辑本来就不一样,我给你掰扯清楚:
1. process.platform返回win32是正常的
Node.js里的process.platform只是用来标识操作系统类型,不是区分系统位数。不管你是32位还是64位Windows,它都会统一返回win32——就像不管是Intel还是Apple Silicon的Mac,它都会返回darwin一样,这是Node.js的标准规则,完全没问题。
2. os.arch()返回ia32是因为你装了32位Node.js
这个才是核心原因:os.arch()返回的不是你的电脑系统架构,而是当前运行的Node.js进程的架构。也就是说,哪怕你的Windows是64位,但如果你装的是32位版本的Node.js,那它运行起来就是32位进程,自然会返回ia32(32位x86架构的标识)。
怎么确认自己的Node.js版本位数?
打开终端敲个命令就能看:
node -p "process.arch"
或者直接回忆你下载安装包的时候,是不是选了x86(32位)版本,而不是x64(64位)版本。
想要返回x64怎么办?
很简单,卸载当前的32位Node.js,去官网重新下载对应版本的64位安装包装上就行。
内容的提问来源于stack exchange,提问作者mikwee
相关产品推荐
相关产品推荐

