鸿蒙系统(HarmonyOS)凭借分布式架构优势,在 PC 端的生态布局持续深化。JavaScript 作为 Web 开发的核心语言,依托 Node.js runtime 可轻松实现跨平台桌面应用开发。本文将详细讲解如何在鸿蒙 PC 上搭建 Node.js 开发环境,通过实战开发一款系统信息查看工具,帮助开发者快速掌握鸿蒙 PC 端 JavaScript 应用的开发要点与适配技巧。
鸿蒙 PC 系统上,推荐使用华为 CodeArts IDE 作为开发工具,其内置的 Node.js 插件可大幅提升开发效率。
在鸿蒙 PC 应用市场,搜索 CodeArts,然后下载安装最新的版本。
CodeArts IDE 对 Node.js 开发提供完善支持,配置步骤如下:
harmonyos-js-system-info,完成项目创建。注意:鸿蒙 PC 端部分目录存在权限限制,建议将项目创建在用户目录下(如 /storage/Users/currentUser/IDEProjects/),避免文件读写权限问题。
本次开发的工具将实现两大核心功能:输出“Hello World”标识应用启动,以及采集并展示鸿蒙 PC 的系统信息(含操作系统、Node.js 环境、CPU、内存等)。代码将基于 Node.js 内置模块开发,确保无第三方依赖,适配鸿蒙 PC 环境。
在项目根目录下创建 system-info-tool.js 文件,复制以下代码:
// 引入Node.js内置模块,无需额外安装第三方依赖
const os = require('os');
const path = require('path');
const process = require('process');
/**
* 核心函数:打印适配鸿蒙PC的系统信息
* 适配要点:处理鸿蒙环境下部分API的兼容性,优化信息展示格式
*/
function printSystemInfo() {
// 打印分隔线,提升输出可读性
console.log("=".repeat(50));
console.log(" 鸿蒙PC系统信息详情");
console.log("=".repeat(50));
// 1. 基础系统信息采集与展示
console.log(`操作系统名称: ${os.type() || '未知'}`);
console.log(`操作系统版本: ${os.release() || '未知'}`);
console.log(`系统内核版本: ${os.version() || '未知'}`);
console.log(`操作系统架构: ${os.arch() || '未知'}`);
console.log(`主机名: ${os.hostname() || '未知'}`);
// 适配鸿蒙PC:通过os.cpus()获取CPU信息,取第一个核心的型号
const cpuList = os.cpus();
const cpuModel = cpuList.length > 0 ? cpuList[0].model : '未知';
console.log(`处理器类型: ${cpuModel}`);
// 2. Node.js运行环境信息
console.log(`\nNode.js 版本: ${process.version.replace('v', '')}`); // 去除版本号前缀"v",简洁展示
console.log(`Node.js 执行路径: ${process.execPath || '未知'}`);
console.log(`Node.js 运行平台: ${process.platform || '未知'}`);
console.log(`Node.js 架构适配: ${process.arch || '未知'}`);
// 3. 应用运行环境信息
console.log(`\n当前工作目录: ${process.cwd()}`);
console.log(`系统路径分隔符: ${path.sep}`);
console.log(`Node.js 模块搜索路径: ${process.env.NODE_PATH || '未知'}`);
console.log(`当前用户进程ID: ${process.pid}`);
// 4. 硬件资源信息(CPU/内存)
console.log(`\nCPU 逻辑核心数: ${cpuList.length}`);
// 内存信息转换:字节 → GB,保留2位小数(1GB = 1024^3 字节)
const totalMemory = (os.totalmem() / (1024 ** 3)).toFixed(2);
const freeMemory = (os.freemem() / (1024 ** 3)).toFixed(2);
const usedMemory = (totalMemory - freeMemory).toFixed(2);
const memoryUsage = ((usedMemory / totalMemory) * 100).toFixed(1);
console.log(`总内存: ${totalMemory} GB`);
console.log(`可用内存: ${freeMemory} GB`);
console.log(`已用内存: ${usedMemory} GB`);
console.log(`内存使用率: ${memoryUsage}%`);
console.log("=".repeat(50));
}
/**
* 主函数:程序入口逻辑
* 包含异常捕获,确保程序稳定运行
*/
function main() {
// 启动标识输出
console.log("🎉 Hello World! 这是鸿蒙PC上的JavaScript应用 🎉");
try {
// 执行系统信息打印逻辑
printSystemInfo();
} catch (error) {
// 捕获所有异常,避免程序崩溃
console.log(`\n⚠️ 获取系统信息时出错: ${error.message}`);
// 保底输出核心基础信息
console.log("=".repeat(50));
console.log(" 基础保底信息");
console.log("=".repeat(50));
console.log(`系统类型: ${os.type() || '未知'}`);
console.log(`Node.js 版本: ${process.version.replace('v', '')}`);
console.log(`当前运行路径: ${process.cwd()}`);
console.log("=".repeat(50));
}
}
// 启动程序
main();
鸿蒙 PC 端的 Node.js 环境存在部分架构特殊性,代码针对性做了以下适配优化,同时保证功能完整性:
仅使用 Node.js 内置的 os(系统信息采集)、path(路径处理)、process(进程与环境信息)模块,避免在鸿蒙环境中安装第三方包时可能遇到的兼容性问题,降低开发与部署门槛。
os.cpus() 返回 CPU 核心数组,通过判断数组长度取第一个核心的 model 属性,确保处理器类型信息准确获取,避免空值报错;process.version 默认返回带“v”前缀的版本号(如 v18.18.2),通过 replace('v', '') 去除前缀,与常规版本展示格式保持一致,提升可读性;process.cwd() 获取当前工作目录(用户项目目录),确保路径相关操作无权限问题。通过 try-catch 块包裹核心业务逻辑,捕获所有可能的运行时异常(如系统信息采集失败、模块加载异常等)。即使部分信息获取失败,程序也能正常退出,并输出系统类型、Node.js 版本、当前路径等保底信息,提升应用稳定性。
以下是代码中核心 API 的功能与适配说明,帮助开发者理解系统信息采集逻辑:
功能分类 | 核心 API | 功能说明 | 鸿蒙适配要点 |
|---|---|---|---|
系统基础信息 | os.type()、os.release()、os.arch() | 获取系统类型、版本、架构 | 兼容鸿蒙 Linux 内核,返回 Linux、aarch64 等准确信息 |
CPU 信息 | os.cpus() | 获取 CPU 核心列表及型号 | 通过数组长度判断,避免空数组报错 |
内存信息 | os.totalmem()、os.freemem() | 获取总内存、可用内存(字节) | 转换为 GB 单位,保留 2 位小数,提升可读性 |
Node.js 环境 | process.version、process.execPath | 获取 Node.js 版本、执行路径 | 去除版本号“v”前缀,适配鸿蒙路径格式 |
运行环境 | process.cwd()、path.sep | 获取当前工作目录、系统路径分隔符 | 适配鸿蒙“/”路径分隔符,避免路径拼接错误 |
在鸿蒙 PC 的 CodeArts IDE 中运行上述代码,步骤简单直观:
system-info-tool.js 文件;🎉 Hello World! 这是鸿蒙PC上的Node.js应用 🎉
==================================================
鸿蒙PC系统信息详情
==================================================
操作系统名称: HarmonyOS
操作系统版本: HongMeng Kernel 1.11.0
系统版本详情: #1 SMP Fri Dec 5 08:46:30 UTC 2025
操作系统架构: arm64
主机名: localhost
处理器类型: unknown
Node.js 版本: 22.7.0
Node.js 执行路径: /data/app/node.org/node_22.7.0/bin/node
Node.js 平台: openharmony
Node.js 架构: arm64
当前工作目录: /storage/Users/currentUser/IDEProjects/jsdemo
系统路径分隔符: /
Node.js 模块路径: /data/storage/el1/bundle/libs/arm64/node_modules.asar.unpacked/:/data/storage/el1/bundle/libs/arm64/
CPU 逻辑核心数: 20
总内存: 31.17 GB
可用内存: 11.80 GB
已用内存: 19.37 GB
内存使用率: 62.1%
==================================================
==================================================
在鸿蒙 PC 端进行 JavaScript(Node.js)开发,除了上述示例中的适配要点外,还需关注以下核心问题,确保应用稳定运行:
/system、/data),所有文件读写、配置存储等操作均放在用户有权限的项目目录或系统默认的用户目录下;node -v:验证 Node.js 版本;uname -a:查看鸿蒙系统内核版本与架构;echo $PATH:检查环境变量配置。本文通过实战案例,完整讲解了鸿蒙 PC 端 Node.js 开发环境的搭建流程,以及系统信息查看工具的开发与适配要点。该示例基于 Node.js 内置模块实现,无第三方依赖,充分适配了鸿蒙 PC 的 aarch64 架构与 Linux 内核特性,具备良好的稳定性和可读性。
基于本文的基础框架,开发者可进一步扩展功能,探索更多鸿蒙 PC 端 JavaScript 应用的可能性:
随着鸿蒙生态的不断完善,JavaScript 在鸿蒙 PC 端的开发场景将更加丰富。开发者只需把握架构适配、权限控制、依赖管理三大核心要点,即可快速上手并开发出高质量的应用。
欢迎大家体验鸿蒙 PC 上的 Java Scipt 开发。
我的联系方式: