如何使用Node.js确定当前的操作系统

我正在编写几个节点shell脚本供在平台上开发时使用。 我们有Mac和Windows开发人员。 有一个variables,我可以检查在节点运行一个.sh文件在一个实例和.bat在另一个?

要使用的variables是process.platform

在Mac上,variables返回darwin 。 在Windows上,它返回win32 (即使在64位)。

可能的值有:“达尔文”,“freebsd”,“linux”,“sunos”或“win32”

我只是把它放在我的jakeFile的顶部:

 var isWin = /^win/.test(process.platform); 

您正在寻找Node.js的OS本地模块:

v4: https : //nodejs.org/dist/latest-v4.x/docs/api/os.html#os_os_platform

或v5: https : //nodejs.org/dist/latest-v5.x/docs/api/os.html#os_os_platform

os.platform()

返回操作系统平台。 可能的值是“达尔文”,“freebsd”,“linux”,“sunos”或“win32”。 返回process.platform的值。

使用Node.js v6(及以上版本),有一个专用的os模块,它提供了许多操作系统相关的工具方法。

在我的Windows 10机器上,它报告了以下内容:

 var os = require('os'); console.log(os.type()); // "Windows_NT" console.log(os.release()); // "10.0.14393" console.log(os.platform()); // "win32" 

你可以在这里阅读完整的文档: https : //nodejs.org/api/os.html

当你在64位窗口上使用32位节点时(比如node-webkit或者atom-shell开发者),process.platform会响应win32

使用

  function isOSWin64() { return process.arch === 'x64' || process.env.hasOwnProperty('PROCESSOR_ARCHITEW6432'); } 

( 点击查看详情)

 const path = require('path'); if (path.sep === "\\") { console.log("Windows"); } else { console.log("Not Windows"); } 
 var isWin64 = process.env.hasOwnProperty('ProgramFiles(x86)');