# @foxglove/ros2idl-parser 中文文档

规范地址：https://npmcn.com/package/%40foxglove/ros2idl-parser/

版本：0\.3\.6
npm 元数据更新时间：2025-10-13T17:39:16.219Z
中文译文更新时间：2026-11-15T10:40:22.621Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40foxglove/ros2idl-parser
原文对照：https://npmcn.com/package/%40foxglove/ros2idl-parser/?lang=original
项目主页：https://github.com/foxglove/omgidl/packages/ros2idl-parser
源码仓库：https://github.com/foxglove/omgidl

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：362 kB，15 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>= 14
- 运行依赖：3 个
- 首次发布：2023-07-13T18:50:05.948Z
- 最新版本发布：2025-10-13T17:39:15.786Z
- 近 30 天下载量：186806（2026-10-16 至 2026-11-14，npm 官方下载统计）
- 已发布版本数：11（近 12 个月 0 个）

## 中文简介

ROS 2 IDL 消息定义解析器

## 安装

```sh
npm install @foxglove/ros2idl-parser
```

也可以使用：`pnpm add @foxglove/ros2idl-parser`、`yarn add @foxglove/ros2idl-parser`、`bun add @foxglove/ros2idl-parser`

## README

# @foxglove/ros2idl-parser (英语)

> _报告2 `.idl` 信件定义解析器_

[![npm version](https://img.shields.io/npm/v/@foxglove/ros2idl-parser.svg?style=flat)](https://www.npmjs.com/package/@foxglove/ros2idl-parser)

## 导言

[机器人操作系统(ROS)](https://www.ros.org/) 定义 a [支持的 OMG IDL 子集](https://design.ros2.org/articles/idl_interface_definition.html) 用于描述数据类型。 这个库解析了这些消息定义,并可以环绕它们返回到适合校验和生成的犬形字符串格式. 解析后的定义与其他库对接时,对序列化或去序列化有用.

## 使用量

```Typescript
import { parseRos2idl } from "@foxglove/ros2idl-parser";

const ros2idlDefinitionStr = `
================================================================================
IDL: geometry_msgs/msg/Pose

module geometry_msgs {
  module msg {
    struct Pose {
      geometry_msgs::msg::Point position;
      geometry_msgs::msg::Quaternion orientation;
    };
  };
};

================================================================================
IDL: geometry_msgs/msg/Point

module geometry_msgs {
  module msg {
    struct Point {
      double x;
      double y;
      double z;
    };
  };
};

================================================================================
IDL: geometry_msgs/msg/Quaternion

module geometry_msgs {
  module msg {
    struct Quaternion {
      double x;
      double y;
      double z;
      double w;
    };
  };
};
`;

const messageDefinition = parseRos2idl(ros2idlDefinitionStr);

// print the parsed message definition structure
console.log(JSON.stringify(messageDefinition, null, 2));
```

指纹 :

```JSON
[
  {
    "definitions": [
      {
        "type": "geometry_msgs/msg/Point",
        "isArray": false,
        "name": "position",
        "isComplex": true
      },
      {
        "type": "geometry_msgs/msg/Quaternion",
        "isArray": false,
        "name": "orientation",
        "isComplex": true
      }
    ]
  },
  {
    "name": "geometry_msgs/msg/Point",
    "definitions": [
      {
        "type": "float64",
        "isArray": false,
        "name": "x",
        "isComplex": false
      },
      {
        "type": "float64",
        "isArray": false,
        "name": "y",
        "isComplex": false
      },
      {
        "type": "float64",
        "isArray": false,
        "name": "z",
        "isComplex": false
      }
    ]
  },
  {
    "name": "geometry_msgs/msg/Quaternion",
    "definitions": [
      {
        "type": "float64",
        "isArray": false,
        "name": "x",
        "isComplex": false
      },
      {
        "type": "float64",
        "isArray": false,
        "name": "y",
        "isComplex": false
      },
      {
        "type": "float64",
        "isArray": false,
        "name": "z",
        "isComplex": false
      },
      {
        "type": "float64",
        "isArray": false,
        "name": "w",
        "isComplex": false
      }
    ]
  }
]
```

## 保持联系

加入我们 [黑频道](https://foxglove.dev/slack) 问问题 分享反馈 随时了解我们团队的工作.

## 常见问题

### @foxglove/ros2idl-parser 是什么？

ROS 2 IDL 消息定义解析器

### 如何安装 @foxglove/ros2idl-parser？

在项目目录运行 npm install @foxglove/ros2idl-parser，或使用 pnpm add / yarn add / bun add。

### @foxglove/ros2idl-parser 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @foxglove/ros2idl-parser 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @foxglove/ros2idl-parser 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>= 14。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @foxglove/ros2idl-parser 可以商用吗？

@foxglove/ros2idl-parser 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @foxglove/ros2idl-parser 的下载量有多少？

根据 npm 官方下载统计，@foxglove/ros2idl-parser 在 2026/10/16 – 2026/11/14 这 30 天内被下载 186,806 次，日均约 6,227 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @foxglove/ros2idl-parser 还在维护吗？

最新版本 0\.3\.6 发布于 2025/10/14（1\.1 年前）；至今共发布 11 个版本，其中过去 12 个月发布了 0 个；首次发布于 2023/07/14。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

