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


当前回答

要使用的变量是process.platform

在Mac上,该变量被设置为darwin。在Windows上,它被设置为win32(甚至在64位上)。

当前可能的值为:

aix 达尔文 freebsd linux openbsd sunos win32 android(根据链接,是实验性的)

我刚刚在我的jakeFile顶部设置了这个:

var isWin = process.platform === "win32";

其他回答

这对我来说很好

var osvar = process.platform;

if (osvar == 'darwin') {
    console.log("you are on a mac os");
}else if(osvar == 'win32'){
    console.log("you are on a windows os")
}else{
    console.log("unknown os")
}

你正在寻找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 () 返回操作系统平台。可能的值为“darwin”、“freebsd”、“linux”、“sunos”或“win32”。返回process.platform的值。

const path = require('path');

if (path.sep === "\\") {
console.log("Windows");
} else {
console.log("Not Windows");
}

要使用的变量是process.platform

在Mac上,该变量被设置为darwin。在Windows上,它被设置为win32(甚至在64位上)。

当前可能的值为:

aix 达尔文 freebsd linux openbsd sunos win32 android(根据链接,是实验性的)

我刚刚在我的jakeFile顶部设置了这个:

var isWin = process.platform === "win32";

过程

var opsys = process.platform;
if (opsys == "darwin") {
    opsys = "MacOS";
} else if (opsys == "win32" || opsys == "win64") {
    opsys = "Windows";
} else if (opsys == "linux") {
    opsys = "Linux";
}
console.log(opsys) // I don't know what linux is.

OS

const os = require("os"); // Comes with node.js
console.log(os.type());