根本原因是code命令未注册进系统PATH;需先用which code(macOS/Linux)或where code(Windows PowerShell)验证,若无输出则通过VSCode命令面板执行“Shell Command: Install 'code' command in PATH”并重启终端。

code 命令找不到,根本不是插件的事,而是 VSCode 自身 CLI 工具压根没注册进系统 PATH。
which code / where code 返回空?先确认 CLI 是否注册
离线环境下,code --install-extension 报“不是内部或外部命令”,99% 是因为 code 命令本身不可用。这不是路径写错,而是 VSCode 安装时没勾选“Add to PATH”,或安装后未重启 shell。
- macOS/Linux:在终端运行
which code;若无输出,说明未注册 - Windows(PowerShell):运行
where code;CMD 下可能不生效,必须用 PowerShell - 如果失败,别急着装插件——先解决
code命令本身
手动注册 CLI:绕过安装选项直接补路径
已安装但没勾选 PATH 时,不能重装,得手动补。路径错了或权限不对,照样失败。
- macOS:把
/Applications/Visual Studio Code.app/Contents/Resources/app/bin加入$PATH(注意是 app 内部的 bin,不是外层目录) - Windows:添加
C:\Users\{username}\AppData\Local\Programs\Microsoft VS Code\bin到「系统环境变量」PATH(不是用户变量),否则服务账户或计划任务里仍不可用 - Linux(tar.gz 解压版):软链
~/vscode/code到/usr/local/bin/code,并确保~/vscode目录可执行 - 改完必须重启终端(或整个 shell 进程),
$SHELL不会自动 reload PATH
settings.json 里 terminal.integrated.env.* 配了也没用?那是配错地方了
有人在 settings.json 里加了 terminal.integrated.env.windows 却发现 code 命令还是找不到——因为这个配置只影响 VSCode 内置终端的环境变量,不影响你从外部终端调用 code 命令本身。
-
terminal.integrated.env.*只对 VSCode 启动的子 shell 生效,和系统级codeCLI 无关 - 如果你的目标是让脚本(比如批处理、CI、企业静默部署)能调用
code --install-extension,就必须走系统 PATH 注册 - 若只是想让 VSCode 终端里能跑 node/npm,那才轮到配
terminal.integrated.env.*;但那是另一个问题,别混进来
WSL 或受限账户下写入失败?换路径比硬刚权限更可靠
在 WSL 中挂载 Windows 分区、企业 NTFS 卷、或 macOS SIP 保护目录下,~/.vscode/extensions 可能根本不可写。此时 code --install-extension 会静默失败——没报错,但目录里啥都没生成。
- 临时方案:用
--extensions-dir指向一个你 100% 确认可写的路径,例如code --extensions-dir /tmp/vscode-ext --install-extension /path/to/python.vsix - 注意:该参数必须放在
--install-extension前面,顺序错就无效 - 批量安装时,别依赖默认路径;脚本里统一指定
--extensions-dir,避免因机器差异导致一半成功一半静默跳过
真正卡住离线部署的,从来不是插件包本身,而是 CLI 注册、PATH 继承、目录写入这三道关。每一步都得验证是否真实生效,而不是“看起来配了”。


















