当前位置: 首页 > news >正文

一键获取Node.js进程信息:实用工具函数分享

一键获取Node.js进程信息:实用工具函数分享

nodejs,mjs,当一个脚本启动其他脚本时,关于当前执行脚本的路径问题,答案如下:
在日常的Node.js开发中,我们经常需要获取当前运行环境的各种信息,比如脚本路径、Node.js版本、命令行参数等。今天分享一个实用的工具函数,可以一键获取所有这些信息。

核心代码:system-info.mjs

// system-info.mjs
import { fileURLToPath } from 'url';
import { execPath, version, argv, cwd, pid, ppid, platform, arch } from 'process';
import { readFileSync } from 'fs';function getSystemInfo() {console.log('=== 系统信息 ===');// 当前脚本信息const currentFile = fileURLToPath(import.meta.url);console.log('📄 当前脚本文件:', currentFile);// 进程启动信息const mainScript = argv[1];console.log('🚀 启动脚本:', mainScript);console.log('🔧 命令行参数:', argv.slice(2));// Node.js 信息console.log('🟢 Node.js 版本:', version);console.log('📁 Node.js 执行路径:', execPath);// 系统信息console.log('💻 平台:', platform);console.log('🏗️  架构:', arch);console.log('📂 当前工作目录:', cwd());console.log('🔢 进程ID:', pid);console.log('👨‍🔧 父进程ID:', ppid);// 包信息(如果有)try {const packageJson = JSON.parse(readFileSync('./package.json', 'utf8'));console.log('📦 项目名称:', packageJson.name || '未设置');console.log('🏷️  版本:', packageJson.version || '未设置');} catch (error) {console.log('📦 包信息: 未找到 package.json');}
}// 运行函数
getSystemInfo();// 导出信息获取函数
export function getProcessInfo() {return {currentFile: fileURLToPath(import.meta.url),mainScript: argv[1],nodeVersion: version,nodeExecPath: execPath,args: argv.slice(2),workingDirectory: cwd(),platform,arch,processId: pid,parentProcessId: ppid};
}// 如果需要以编程方式使用
export default getProcessInfo;

功能特点

这个小工具提供了两大类功能:

1. 直接控制台输出

运行脚本时,会自动在控制台输出格式化的系统信息,包括:

  • 📄 当前执行的脚本文件路径
  • 🚀 启动进程的入口脚本
  • 🔧 命令行传入的参数
  • 🟢 Node.js版本信息
  • 📁 Node.js可执行文件路径
  • 💻 运行平台和架构
  • 📂 当前工作目录
  • 🔢 进程ID和父进程ID
  • 📦 项目包信息(如果存在package.json)

2. 编程式API

通过导出的函数,你可以在代码中获取结构化的进程信息:

import { getProcessInfo } from './system-info.mjs';const info = getProcessInfo();
console.log(info);
// 输出:
// {
//currentFile: '/path/to/script.mjs',
//mainScript: '/path/to/main.mjs',
//nodeVersion: 'v18.17.0',
//nodeExecPath: '/usr/local/bin/node',
//args: ['--debug', '--port=3000'],
//workingDirectory: '/project/path',
//platform: 'darwin',
//arch: 'x64',
//processId: 12345,
//parentProcessId: 67890
// }

使用方法

直接运行

node system-info.mjs --debug --port=3000

作为模块导入

// 在你的应用代码中
import getProcessInfo from './system-info.mjs';// 获取信息对象
const processInfo = getProcessInfo();// 使用这些信息
console.log(`运行在Node.js ${processInfo.nodeVersion}`);
console.log(`工作目录: ${processInfo.workingDirectory}`);

应用场景

这个工具函数在以下场景中特别有用:

  1. 调试和日志记录 - 快速获取运行环境信息并记录到日志中
  2. 系统监控 - 监控应用程序的运行状态和环境
  3. 配置管理 - 根据运行环境动态调整配置
  4. 错误报告 - 在错误信息中包含环境数据,便于排查问题
  5. 多环境部署 - 验证应用程序在不同环境中的运行情况

小结

这个简洁而强大的工具函数封装了Node.js进程的核心信息获取功能,无论是直接使用还是集成到更大的项目中,都能提供极大的便利。清晰的图标标识和完整的类型信息让它既美观又实用。

希望这个工具能帮助你在Node.js开发中更高效地获取和管理进程信息!

http://www.dtcms.com/a/431118.html

相关文章:

  • ML4T - 第7章第7节 逻辑回归拟合宏观数据Logistic Regression with Macro Data
  • 宿州学校网站建设东营城乡建设局官网
  • 从通用人工智能(AGI)到超级智能(ASI):演化、挑战与启示
  • CycloneDX:全栈软件供应链安全标准解读及优势分析
  • Python 线程同步原语大全:Lock、RLock、Semaphore、Condition、Event实战
  • 青岛网站建设在哪温州高端网站定制
  • keil5添加其他芯片包pack文件的方式
  • 短剧小程序跨端适配实战:UniApp / 原生开发选型与多终端体验一致性保障
  • 第四周作业(包括小组网页设计-对Bootstrap的初步了解)
  • 算法时空博弈:效率与资源的交响诗篇
  • TensorFlow与PyTorch深度对比分析:从基础原理到实战选择的完整指南
  • 图像分类模型 传统训练VS迁移学习训练
  • 专业的东莞网站设计免费制作永久个人网站
  • 【数据结构与算法学习笔记】队列
  • Service Worker:前端离线化与性能优化的核心技术
  • FFmpeg 深入精讲(五)播放器核心技术
  • 迪拜哪个网站是做网站的网络平台有哪些?
  • 【天池经典打榜赛】赛道四-知识图谱预测赛的代码文档
  • typescript 中 for..of 和 for..in的区别
  • 安卓和网站开发找工作wordpress 改网站域名
  • AI 提效:利用 AI 从前端 快速转型为UI/UX设计师和产品
  • 模板网站建站公司公主岭网站建设
  • DAY 37 早停策略和模型权重的保存-2025.10.1
  • 百联网上购物商城南昌百度推广优化排名
  • DataHub:一个现代化的元数据管理平台
  • 做 58 那样的网站wordpress图片外链
  • 腾讯开源 Hunyuan-MT-7B:33语种全覆盖、30项WMT25冠军的轻量级机器翻译新标杆
  • 郑州网站APP网站推广做多大尺寸
  • node.js 二进制安装
  • 【办公类-116-01】20250929家长会PPT(Python快速批量制作16:9PPT相册,带文件名,照片横版和竖版)