本次改动的核心目标让colcon build也能像 launch/run 一样右键一键搞定。✨ 新增功能colcon build 右键菜单改了什么在任意文件夹上右键新增了colcon build按钮。期望的行为右键位置终端路径执行的命令xxx_ws/xxx_ws/colcon buildxxx_ws/src/xxx_ws/colcon buildxxx_ws/src/pkg_a/xxx_ws/colcon build但是如果是在工作空间的上级目录右键虽然也会出现colcon build按钮但是运行后右下角会报错找不到工作空间。简单说一般来说你只需要在你工作空间下面的文件夹右键运行最终都在工作空间根目录执行编译。 更新内容增强findRos2Workspace函数之前只判断同时有src/和install/现在分两级判断// 优先同时有 src/ 和 install/已编译最准确if(fs.existsSync(srcPath)fs.existsSync(installPath)){returncurrentDir;}// 兜底只有 src/但 src/ 下有包含 package.xml 的子目录未编译if(fs.existsSync(srcPath)){constitemsfs.readdirSync(srcPath);consthasPackageitems.some(item{constitemPathpath.join(srcPath,item);returnfs.statSync(itemPath).isDirectory()fs.existsSync(path.join(itemPath,package.xml));});if(hasPackage)returncurrentDir;}这样未编译的工作空间也能正确识别。增加isWorkspaceRoot严格判断functionisWorkspaceRoot(dirPath){constsrcPathpath.join(dirPath,src);if(!fs.existsSync(srcPath))returnfalse;constitemsfs.readdirSync(srcPath);returnitems.some(item{constitemPathpath.join(srcPath,item);returnfs.statSync(itemPath).isDirectory()fs.existsSync(path.join(itemPath,package.xml));});}不能只看有没有src/必须看src/下的子目录是否包含package.xml这避免了被包内的src/子目录误判。比如xxx_ws/src/pkg_a/src修复前在pkg_a目录右键就会在pkg_a这个目录进行colcon build但是修复后会在xxx_ws目录进行colcon build。 经验总结此次更新最主要的功能就是添加colcon build功能具体原因可以和ros2的编译结果有关正是由于ros2的特性详细原因可以看我上期文章修改代码后需要重新编译那么colcon build就变成了和source install/setup.bash使用频率差不多的命令如果自己手敲会比较费时间我自己在复现项目的过程中体会到了当你每改一点然后git存档然后你要看看能否跑起来你就需要编译然后运行手敲确实繁琐这次更新比较突然我也只是做了一些测试但是由于每个人的项目不同代码架构可能存在不同因此我目前也排查不出问题只能尽可能的模拟多种情况。欢迎大家体验提出问题目前已经有73人下载安装 最终效果场景行为右键xxx_ws/✅ 直接 build右键xxx_ws/src/✅ 上一级 build右键xxx_ws/src/pkg_a/✅ 自动向上找build工作空间未编译✅ 也能正确识别包内src/子目录✅ 不会被误判GitHubhttps://github.com/Knighthood2001/vscode-ros2-quick-runner版本v0.0.4发布日期2026-06-10