我正在编写两个节点shell脚本,以便在平台上开发时使用。我们有Mac和Windows的开发人员。是否有一个变量,我可以检查在节点运行一个.sh文件在一个实例和。bat在另一个?
你正在寻找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的值。
返回操作系统平台。可能的值为“darwin”、“freebsd”、“linux”、“sunos”或“win32”。返回process.platform的值。
要使用的变量将是process.platform
process.platform
在Mac上,该变量被设置为darwin。在Windows上,它被设置为win32(即使是64位)。
darwin
win32
当前可能值是:
aix
freebsd
linux
openbsd
sunos
android
我刚刚在我的jakeFile顶部设置了这个:
var isWin = process.platform === "win32";
当你在64位窗口上使用32位节点时(如node-webkit或atom-shell开发人员),处理。平台将回显win32
使用
function isOSWin64() { return process.arch === 'x64' || process.env.hasOwnProperty('PROCESSOR_ARCHITEW6432'); }
(详细信息请查看在这里)
var isWin64 = process.env.hasOwnProperty('ProgramFiles(x86)');
在Node.js v6(及以上版本)中,有一个专门的os模块,它提供了许多与操作系统相关的实用程序方法。
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#os_os_type
const path = require('path'); if (path.sep === "\\") { console.log("Windows"); } else { console.log("Not Windows"); }
对我来说没问题
if (/^win/i.test(process.platform)) { // TODO: Windows } else { // TODO: Linux, Mac or something else }
修饰符i用于进行不区分大小写的匹配。
这对我来说很好
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") }
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.
const os = require("os"); // Comes with node.js console.log(os.type());
我在mac机器上的Windows VM上运行我的node js代码时也遇到了同样的问题。下面的代码达到了目的。
取代
的过程。平台== 'win32'
与
Const OS = require(' OS '); Os.platform () == 'win32';
Const OS = require(' OS ');
Os.platform () == 'win32';