在鸿蒙PC上体验JavaScript应用开发:系统信息查看工具
鸿蒙系统(HarmonyOS)凭借分布式架构优势,在PC端的生态布局持续深化。JavaScript作为Web开发的核心语言,依托Node.js runtime可轻松实现跨平台桌面应用开发。本文将详细讲解如何在鸿蒙PC上搭建Node.js开发环境,通过实战开发一款系统信息查看工具,帮助开发者快速掌握鸿蒙PC端JavaScript应用的开发要点与适配技巧。
一、鸿蒙PC端Node.js开发环境搭建
鸿蒙PC系统上,推荐使用华为CodeArts IDE作为开发工具,其内置的Node.js插件可大幅提升开发效率。
1. 安装CodeArts IDE作为开发工具
在鸿蒙PC应用市场,搜索CodeArts,然后下载安装最新的版本。
配置CodeArts IDE开发环境
CodeArts IDE对Node.js开发提供完善支持,配置步骤如下:
- 创建新项目:点击"文件"→"新建"→"项目",选择"java script",命名为
harmonyos-js-system-info,完成项目创建。
注意:鸿蒙PC端部分目录存在权限限制,建议将项目创建在用户目录下(如 /storage/Users/currentUser/IDEProjects/),避免文件读写权限问题。
二、实战开发:系统信息查看工具
本次开发的工具将实现两大核心功能:输出"Hello World"标识应用启动,以及采集并展示鸿蒙PC的系统信息(含操作系统、Node.js环境、CPU、内存等)。代码将基于Node.js内置模块开发,确保无第三方依赖,适配鸿蒙PC环境。
1. 完整代码实现
在项目根目录下创建 system-info-tool.js 文件,复制以下代码:
javascript
// 引入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();
2. 核心适配与代码解析
鸿蒙PC端的Node.js环境存在部分架构特殊性,代码针对性做了以下适配优化,同时保证功能完整性:
(1)无第三方依赖设计
仅使用Node.js内置的 os(系统信息采集)、path(路径处理)、process(进程与环境信息)模块,避免在鸿蒙环境中安装第三方包时可能遇到的兼容性问题,降低开发与部署门槛。
(2)鸿蒙架构适配要点
-
CPU信息适配:鸿蒙PC多为aarch64架构,
os.cpus()返回CPU核心数组,通过判断数组长度取第一个核心的model属性,确保处理器类型信息准确获取,避免空值报错; -
版本号优化:
process.version默认返回带"v"前缀的版本号(如v18.18.2),通过replace('v', '')去除前缀,与常规版本展示格式保持一致,提升可读性; -
权限兼容:避免访问鸿蒙系统敏感目录,通过
process.cwd()获取当前工作目录(用户项目目录),确保路径相关操作无权限问题。
(3)异常容错机制
通过 try-catch 块包裹核心业务逻辑,捕获所有可能的运行时异常(如系统信息采集失败、模块加载异常等)。即使部分信息获取失败,程序也能正常退出,并输出系统类型、Node.js版本、当前路径等保底信息,提升应用稳定性。
(4)关键API说明
以下是代码中核心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 | 获取当前工作目录、系统路径分隔符 | 适配鸿蒙"/"路径分隔符,避免路径拼接错误 |
3. 运行步骤与效果展示
在鸿蒙PC的CodeArts IDE中运行上述代码,步骤简单直观:
-
右键点击项目中的
system-info-tool.js文件; -
选择"运行"选项,IDE将自动调用配置好的Node.js解释器执行代码;
-
查看IDE底部的"终端"面板,将看到完整的系统信息输出。
运行效果示例
Plain
🎉 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开发注意事项
在鸿蒙PC端进行JavaScript(Node.js)开发,除了上述示例中的适配要点外,还需关注以下核心问题,确保应用稳定运行:
-
架构适配优先:鸿蒙PC主流为aarch64架构
-
依赖管理规范:尽量使用Node.js内置模块
-
权限控制要点:避免在应用中直接操作鸿蒙系统目录(如
/system、/data),所有文件读写、配置存储等操作均放在用户有权限的项目目录或系统默认的用户目录下; -
调试技巧:若遇到环境相关问题,可通过CodeArts IDE的"终端"执行以下命令辅助定位:
-
node -v:验证Node.js版本; -
uname -a:查看鸿蒙系统内核版本与架构; -
echo $PATH:检查环境变量配置。
-
-
性能优化:鸿蒙PC端部分硬件配置可能有限,开发时避免编写资源密集型代码(如无限循环、大量内存占用),确保应用轻量化运行。
四、总结与扩展方向
本文通过实战案例,完整讲解了鸿蒙PC端Node.js开发环境的搭建流程,以及系统信息查看工具的开发与适配要点。该示例基于Node.js内置模块实现,无第三方依赖,充分适配了鸿蒙PC的aarch64架构与Linux内核特性,具备良好的稳定性和可读性。
基于本文的基础框架,开发者可进一步扩展功能,探索更多鸿蒙PC端JavaScript应用的可能性:
-
可视化界面开发:结合Electron框架,将命令行工具改造为带GUI的桌面应用,提升用户体验;
-
功能扩展:增加磁盘信息采集、进程管理、系统资源监控等功能;
-
鸿蒙生态融合:调用鸿蒙系统的API(如分布式数据管理、设备互联),实现跨设备的系统信息同步。
随着鸿蒙生态的不断完善,JavaScript在鸿蒙PC端的开发场景将更加丰富。开发者只需把握架构适配、权限控制、依赖管理三大核心要点,即可快速上手并开发出高质量的应用。
欢迎大家体验鸿蒙PC上的Java Scipt开发。