必须装 node.js(v14+,推荐 v16 lts)和 yeoman;yo code 报错“command not found”主因是全局安装失败或 path 未配置;activationevents、main 路径、编译产物三者任一错误均导致插件不加载。

必须装 Node.js(v14+,推荐 v16 LTS)和 Yeoman 脚手架,缺一不可;VSCode 本身只是运行环境,不提供插件开发能力。
为什么 yo code 会报错“command not found”
这是最常卡住新手的第一步。根本原因只有两个:
-
npm install -g yo generator-code没执行成功(比如权限不足、镜像源超时),或执行后没重启终端 - Node.js 未正确加入系统
PATH,导致全局 bin 目录不可达(Windows 用户尤其容易忽略安装时勾选 “Add to PATH”)
验证方式:在任意终端运行 node -v 和 npm -v,都应输出版本号;再运行 yo --version,有输出即说明 Yeoman 就绪。若仍失败,别反复重装,直接用 npx yo code 临时绕过全局安装问题。
package.json 里 activationEvents 写错会导致插件不加载
VSCode 启动时不会自动激活所有插件——它靠 activationEvents 判断何时拉起你的代码。常见错误写法:
- 写成
"*":虽然能强制激活,但严重拖慢启动速度,官方明确不推荐 - 漏掉前缀,比如写
"onCommand:hello"却没在contributes.commands里声明同名命令,VSCode 根本不会识别该事件 - 用错语法,比如写成
["onCommand:myExt.hello", "onLanguage:python"]却忘了数组要用方括号包裹
推荐起步配置:"activationEvents": ["onCommand:myExtension.helloWorld"],对应你在 contributes.commands 中注册的完整命令 ID。
TypeScript 项目里 src/extension.ts 的 activate 函数不执行
不是代码写错了,而是 VSCode 没走到这一步。检查三个硬性条件:
-
package.json中的main字段是否指向正确的入口文件路径(如"main": "./out/extension.js"),注意不是.ts源文件 - 项目是否已执行过
npm run compile(或npm run watch),TypeScript 必须先编译为 JS 才能被加载 -
out/目录是否存在且含有效 JS 文件?如果tsconfig.json的outDir配置错误(比如拼成outDirr),编译会静默失败
一个快速验证技巧:在 activate 函数第一行加 console.log('activated'),然后按 Ctrl+Shift+P → 输入 “Developer: Toggle Developer Tools”,在 Console 面板看是否有输出。
真正麻烦的从来不是写功能,而是让 VSCode 知道“该加载你了”。activationEvents、main 路径、编译产物三者只要一个错位,整个插件就处于“存在但不可见”状态——这种问题没有报错,只有一片沉默。











