os
Nodejs os 模块可以跟操作系统进行交互
js
var os = require('node:os');| 序号 | API | 作用 |
|---|---|---|
| 1 | os.type() | 它在 Linux 上返回 'Linux',在 macOS 上返回 'Darwin',在 Windows 上返回 'Windows_NT' |
| 2 | os.platform() | 返回标识为其编译 Node.js 二进制文件的操作系统平台的字符串。 该值在编译时设置。 可能的值为 'aix'、'darwin'、'freebsd'、'linux'、'openbsd'、'sunos'、以及 'win32' |
| 3 | os.release() | 返回操作系统的版本例如 10.xxxx win10 |
| 4 | os.homedir() | 返回用户目录 例如 c:\user\xiaoman 原理就是 windows echo %USERPROFILE% posix $HOME |
| 5 | os.arch() | 返回操作系统的 CPU 架构。 可能的值为 'arm'、'arm64'、'ia32'、'mips'、'mipsel'、'ppc'、'ppc64'、's390'、's390x'、'x32'、'x64' |
获取 CPU 的线程以及详细信息
js
const os = require('node:os');
os.cpus();js
[
{
model: 'AMD Ryzen 7 8845H w/ Radeon 780M Graphics',
speed: 3793,
times: { user: 260875, nice: 0, sys: 305046, idle: 122493593, irq: 23500 },
},
{
model: 'AMD Ryzen 7 8845H w/ Radeon 780M Graphics',
speed: 3793,
times: { user: 129500, nice: 0, sys: 132796, idle: 122797140, irq: 3953 },
},
];
//.........model: 表示 CPU 的型号信息,其中 "AMD Ryzen 7 8845H w/ Radeon 780M Graphics" 是一种具体的型号描述。
speed: 表示 CPU 的时钟速度,以 MHz 或 GHz 为单位。在这种情况下,速度为 3793 MHz 或 3.793 GHz。
times: 是一个包含 CPU 使用时间的对象,其中包含以下属性:
- user: 表示 CPU 被用户程序使用的时间(以毫秒为单位)。
- nice: 表示 CPU 被优先级较低的用户程序使用的时间(以毫秒为单位)。
- sys: 表示 CPU 被系统内核使用的时间(以毫秒为单位)。
- idle: 表示 CPU 处于空闲状态的时间(以毫秒为单位)。
- irq: 表示 CPU 被硬件中断处理程序使用的时间(以毫秒为单位)。
获取网络信息
js
const os = require('node:os');
os.networkInterfaces();案例
知道这些信息有什么用?
非常经典的例子 webpack vite 有一个配置项可以打开浏览器 open:true 简单复刻一下
js
const { exec } = require('child_process');
const os = require('os');
function openBrowser(url) {
if (os.platform() === 'darwin') {
// macOS
exec(`open ${url}`); //执行shell脚本
} else if (os.platform() === 'win32') {
// Windows
exec(`start ${url}`); //执行shell脚本
} else {
// Linux, Unix-like
exec(`xdg-open ${url}`); //执行shell脚本
}
}
// Example usage
openBrowser('https://www.juejin.cn');