Skip to content

os模块

js
    const os = require('node:os');
    const { exec } = require('node:child_process');
// exec可以执行shell命令
// 1. 获取操作系统的信息,windows返回win32, mac返回darwin, linux返回linux, android返回android
console.log(os.platform());
//   type Platform =
    // | "aix"
    // | "android"
    // | "darwin"
    // | "freebsd"
    // | "haiku"
    // | "linux"
    // | "openbsd"
    // | "sunos"
    // | "win32"
    // | "cygwin"
    // | "netbsd";
// 2. 获取操作系统的版本
console.log('release', os.release());
console.log('type', os.type()); // windows_NT darwin linux
console.log('version', os.version());

// webpack vite rollup open=true
// 判断不同的操作系统,打开浏览器
const platform = os.platform();
const open = (url)  => {
    if (platform === 'win32') {
        exec(`start ${url}`);
    }
    if (platform === 'darwin') {
        exec(`open ${url}`);
    }
    if (platform === 'linux') {
        exec(`xdg-open ${url}`);
    }
}
// 打开浏览器
open('https://github.com');

// 3. 获取用户user目录
// homeDir 读取用户目录 windows: %UserProfile%, mac: $HOME, linux: $HOME
console.log(os.homedir());
// 4. 获取cpu架构
console.log(os.arch());
// 5. 获取cpu信息
console.log(os.cpus());
// 常用于计算cpu利用率
// {
//     model: 'Apple M1 Pro',
//     speed: 24,
//     times: { user: 80686900, nice: 0, sys: 53759010, idle: 545946190, irq: 0 }
//   },
console.log(os.cpus().length); // 读取的是cpu的核数
// 6. 网络信息
/*
{
      address: '127.0.0.1', ip地址
      netmask: '255.0.0.0', 子网掩码
      family: 'IPv4', 协议
      mac: 'xx:0x:x0:00:00:00', mac地址
      internal: true, 是否是内网
      cidr: '127.0.0.1/8' 网络地址
    },
*/
console.log(os.networkInterfaces());