iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >如何利用node获取mac系统版本
  • 842
分享到

如何利用node获取mac系统版本

2024-04-02 19:04:59 842人浏览 安东尼
摘要

这篇文章主要介绍“如何利用node获取Mac系统版本”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何利用node获取mac系统版本”文章能帮助大家解决问题。获取系

这篇文章主要介绍“如何利用node获取Mac系统版本”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何利用node获取mac系统版本”文章能帮助大家解决问题。

如何利用node获取mac系统版本

获取系统类型

既然需要针对 mac 系统进行兼容性处理,首先需要区分系统类型,好在 nodejs 提供了相关的 api,只需使用 os.platfORM() 即可直接获取系统类型。

import { platform } from 'os';

console.log(platform()); // 'darwin'

值得一提的是,macOS 对应的名称不是 macOS 而是 darwin

除了可以通过 os 这个包获取系统类型,我们还可以通过 process.platform 来获取。

import { platform } from 'process';

console.log(platform); // 'darwin'

获取系统版本

很多熟悉 node 的同学这时候会说了,可以通过 os.release() 快速获取系统版本。但是,当你执行 os.release() ,你会发现,它的结果并符合常规认知。

比如,我的系统版本是 12.0.1,但是,os.release() 的执行结果却是 21.1.0

查看 node 官方文档可以发现,node 是通过 uname(3) 来确定操作系统的,所以执行结果比较违背常规认知。

通过命令行获取系统版本

既然 os.release() 获取的系统版本很难让人理解,那么有没有什么方案可以直接获取实际的系统版本号呢?

mac 上存在 sw_vers 命令,可以直接获取系统信息。

$ sw_vers
ProductName:    macOS
ProductVersion: 12.0.1
BuildVersion:   21A559

可以看到 sw_vers 命令直接获取到了系统版本:12.0.1

如果不需要其他系统信息,我们可以通过添加命令行参数,过滤命令行结果,直接获取系统版本。

$ sw_vers -ProductVersion
12.0.1

由于命令行不区分大小写,所以命令行参数无所谓大小写,你也可以写成 -productversion 或者 -ProductVersion

既然知道命令行怎么写,接下来我们只需要在 node 中调用命令行即可。

import { execSync } from 'child_process';
console.log(execSync('sw_vers -ProductVersion', { encoding: 'utf-8' })); // 12.0.1

优雅地获取系统版本

通过 node 子进程执行命令行命令,可以获取正确的系统版本。但是这种方式有着性能方面的缺陷,需要创建子进程执行命令行,相对于 os.release() 的方式,开销较大。

之前使用 os.release() 的问题在于返回结果比较违反常规认知,但是它的结果其实是正确的,只不过需要进行一次映射。

所以,通过 os.release() 配合映射表即可优雅地获取系统版本。

import os from 'os';

const macVersionMap = new Map([
  [21, ['Monterey', '12']],
  [20, ['Big Sur', '11']],
  [19, ['Catalina', '10.15']],
  [18, ['Mojave', '10.14']],
  [17, ['High Sierra', '10.13']],
  [16, ['Sierra', '10.12']],
  [15, ['El Capitan', '10.11']],
  [14, ['Yosemite', '10.10']],
  [13, ['Mavericks', '10.9']],
  [12, ['Mountain Lion', '10.8']],
  [11, ['Lion', '10.7']],
  [10, ['Snow Leopard', '10.6']],
  [9, ['Leopard', '10.5']],
  [8, ['Tiger', '10.4']],
  [7, ['Panther', '10.3']],
  [6, ['Jaguar', '10.2']],
  [5, ['Puma', '10.1']],
]);

const getMacRelease = (release: string) => {
  const macRelease = release ?? os.release();
  const firstReleaseVersion = Number(macRelease.split('.')[0]);
  const [name, version] = macVersionMap.get(firstReleaseVersion) || [
    'Unknown',
    '',
  ];

  return {
    name,
    version,
  };
};

console.log(getMacRelease()) // 12

为了方便 mac 新发布系统后依然能够识别,将新系统版本名称识别为 Unknow,新版本识别为空字符串

此举是学习移动端机型打分平台,如果出现版本为空时,默认为高版本,不影响低版本的兼容性处理。

关于“如何利用node获取mac系统版本”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网node.js频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: 如何利用node获取mac系统版本

本文链接: https://www.lsjlt.com/news/97655.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何利用node获取mac系统版本
    这篇文章主要介绍“如何利用node获取mac系统版本”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“如何利用node获取mac系统版本”文章能帮助大家解决问题。获取系...
    99+
    2024-04-02
  • mac如何升级node版本、切换node版本
    一、mac如何升级node版本 当前官网稳定版本是18.15.0  所以我从v14.17.4升级到v18.15.0 二、mac如何切换node版本 切换到16.20.0版本 三、mac可以用node.js的多版本管理器n来升级和切...
    99+
    2023-08-31
    macos npm javascript
  • Android获取系统版本
    Android获取系统版本 在Android开发中,我们经常需要获取设备的系统版本信息。可以通过以下代码获取当前Android设备的系统版本: String version = Build.VERSI...
    99+
    2023-10-22
    android Android
  • 怎么利用Node获取物理网卡mac地址
    本篇内容介绍了“怎么利用Node获取物理网卡mac地址”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在基于...
    99+
    2024-04-02
  • Linux系统如何获取默认MAC地址
    这篇文章跟大家分析一下“Linux系统如何获取默认MAC地址”。内容详细易懂,对“Linux系统如何获取默认MAC地址”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“Linux系统...
    99+
    2023-06-28
  • mac中如何使用NVM管理不同node版本
    这篇文章给大家分享的是有关mac中如何使用NVM管理不同node版本的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Mac 下通过 brew install nvm 所安装的 nv...
    99+
    2024-04-02
  • 如何获取mysql的版本
    获取 mysql 版本的方法有:命令行命令(mysql -v、mysqldump --version、mysqlcheck --version)mysql workbench 中的“主页...
    99+
    2024-04-14
    mysql linux
  • 利用java如何根据IP获取mac地址
    利用java如何根据IP获取mac地址?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。具体内容如下import java.net.InetAddress;import jav...
    99+
    2023-05-31
    java ip mac
  • 如何获取WebLogic的版本号
    本篇内容主要讲解“如何获取WebLogic的版本号”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何获取WebLogic的版本号”吧! ...
    99+
    2024-04-02
  • 如何给Mac OS 更新到指定版本系统
    当Mac发布最新版本时候我们想更新到上一个大版本,但是发现只有最新的   此时在商城搜不到,我们需要在官网入手 1、在Apple网站,Apple - 技术支持 - 搜索 (中国),搜索指定的系统版本做下载 网址: https://supp...
    99+
    2023-09-01
    macos
  • 用户的MAC地址如何利用java实现获取
    用户的MAC地址如何利用java实现获取?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。java实现获取用户的MAC地址方法:方法一:将本机地址与局域网内其他机器区分开来 p...
    99+
    2023-05-31
    java mac地址 ava
  • vbs怎么获取操作系统及其版本号
    这篇文章给大家分享的是有关vbs怎么获取操作系统及其版本号的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。vbs获取操作系统及其版本号'***********************************...
    99+
    2023-06-08
  • 脚本RGIS.vbs如何远程或本地获取系统信息
    本篇内容主要讲解“脚本RGIS.vbs如何远程或本地获取系统信息”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“脚本RGIS.vbs如何远程或本地获取系统信息”吧!****************...
    99+
    2023-06-08
  • 如何利用Node.js查看操作系统及其版本号
    这篇文章给大家分享的是有关如何利用Node.js查看操作系统及其版本号的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。获取操作系统在 Node.js 中判断操作系统是非常简单的,用...
    99+
    2024-04-02
  • html中如何使用js来获取本地系统时间
    小编给大家分享一下html中如何使用js来获取本地系统时间,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!<div id="名称"> <scr...
    99+
    2024-04-02
  • 如何获取Maven项目的版本号
    目录Jar包的秘密 Maven资源插件过滤 Spring Boot提供 总结 目前大多数Spring Boot项目都会打成Jar包,所以什么War包、Ear包的就先不摸索了。 Jar...
    99+
    2024-04-02
  • node如何使用nvm进行node多版本管理
    这篇文章主要介绍了node如何使用nvm进行node多版本管理,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。nvm(nodejs versi...
    99+
    2024-04-02
  • ​ Android 操作系统用于获取设备的软件版本号 ​ro.build.id
    getprop ro.build.id 是一个 Android 操作系统中的命令,通常用于获取设备的软件版本号。其中,ro.build.id 是一个系统属性的名称,它存储了当前设备的软件版本标识符。 要使用 getprop ro.build...
    99+
    2023-10-02
    android adb
  • Android 开发中如何获取应用的版本号
    Android 开发中如何获取应用的版本号 在Android开发中,获取应用的版本号是一项常见的需求。应用的版本号通常用于记录应用程序的更新历史和区分不同版本之间的功能差异。下面将介绍在Android...
    99+
    2023-10-21
    android Android
  • 如何使用nvm管理多版本node
    这篇文章将为大家详细讲解有关如何使用nvm管理多版本node,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先,使用下面的命令来安装 nvm$ curl&nbs...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作