我正在编写两个节点shell脚本,以便在平台上开发时使用。我们有Mac和Windows的开发人员。是否有一个变量,我可以检查在节点运行一个.sh文件在一个实例和。bat在另一个?
当前回答
我在mac机器上的Windows VM上运行我的node js代码时也遇到了同样的问题。下面的代码达到了目的。
取代
的过程。平台== 'win32'
with
就在这里 落日式金甲
其他回答
const path = require('path');
if (path.sep === "\\") {
console.log("Windows");
} else {
console.log("Not Windows");
}
你正在寻找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的值。
var isWin64 = process.env.hasOwnProperty('ProgramFiles(x86)');
过程
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());
要使用的变量是process.platform
在Mac上,该变量被设置为darwin。在Windows上,它被设置为win32(甚至在64位上)。
当前可能的值为:
aix 达尔文 freebsd linux openbsd sunos win32 android(根据链接,是实验性的)
我刚刚在我的jakeFile顶部设置了这个:
var isWin = process.platform === "win32";
推荐文章
- CALL_AND_RETRY_LAST分配失败-进程内存不足
- 在Ubuntu上安装Node.js
- 使用express.js代理
- Node -使用NODE_MODULE_VERSION 51根据不同的Node.js版本编译
- RabbitMQ / AMQP:单队列,同一消息的多个消费者?
- Node.js同步执行系统命令
- 禁用包的postinstall脚本
- Node.js上的html解析器
- 错误:无法找到模块“webpack”
- 在node.js中使用async / await文件系统
- NodeJS -用NPM安装错误
- 如何为本地安装npm包设置自定义位置?
- 回调函数来处理管道的完成
- Express函数中的“res”和“req”参数是什么?
- node.js TypeError:路径必须是绝对路径或指定根路径到res.sendFile[解析JSON失败]