根本原因是vscode终端未加载shell配置导致path缺失;需在设置中为对应shell配置"args": ["-l"]启用登录shell,windows用户还需检查powershell执行策略或改用cmd,修改后必须完全退出并重启vscode。

VSCode 终端里 npm 命令报 command not found 怎么办
根本原因不是 VSCode 有问题,而是它启动的终端没加载你的 shell 配置(比如 .zshrc 或 .bash_profile),导致 node 和 npm 不在 $PATH 里。
- 在 VSCode 终端运行
which node和系统终端对比,不一致就说明环境没加载 - 去 VSCode 设置搜
terminal.integrated.profiles,给对应 shell(如zsh)加"args": ["-l"],强制走 login shell - Windows 用户如果用 PowerShell,
&&可能被拦截,改用cross-env或直接切 CMD - 别手动写绝对路径调
/Users/xxx/.nvm/versions/...—— 临时能跑,换机器就崩
package.json 的 scripts 为啥在 VSCode 左侧 NPM Scripts 面板里不显示
VSCode 只认工作区根目录下的 package.json,且必须是合法 JSON —— 尾逗号、注释、缩进错误都会让它静默失效。
- 检查文件位置:
package.json必须在打开的文件夹(workspace root)下,不能在src/或packages/my-lib/里 - 脚本名不能含空格,比如
"build prod"会直接被忽略;"build:prod"没问题 - 值必须是字符串:
"build": "tsc --build"✅,"build": ["tsc", "--build"]❌ - 面板空白?按
Ctrl+Shift+P→ 输入Developer: Reload Window刷新一下,别硬等
本地开发完,怎么从 VSCode 一键发布到 npm registry
发布不是“点一下就完事”,核心是三件事:校验、登录、推送。VSCode 本身不参与 auth,但可以帮你串起流程。
- 先确保
npm login已执行(token 存在~/.npmrc),否则npm publish一定失败 -
package.json里"name"必须全局唯一,带 scope 的如@myorg/util要提前npm init -w @myorg - 别直接写
"publish": "npm publish"—— 缺少版本 bump、test、build 校验,容易发错版 - 推荐组合脚本:
"prepublishOnly": "npm test && npm run build"+"publish": "npm version patch && npm publish" - 发布前手动确认:终端里跑
npm pack看生成的 tarball 内容是否干净(不含node_modules、test目录等)
发布后别人 install 不到最新版,或者报 E404 错误
常见陷阱不在代码,而在包名、作用域和 registry 配置上。
-
npm publish默认推到 public registry,但如果你之前设过npm config set registry指向私有源,就得显式加--registry https://registry.npmjs.org - 包名含大写字母或下划线?npm 会自动转成小写+连字符,但
require('MyLib')会找不到 —— 一律用 kebab-case - 第一次发布私有 scope(如
@myname/foo),必须先npm access public @myname/foo,否则默认 private - 发布后立即
npm view my-package versions查看最新版是否已列出来,没出现就是网络或权限问题,不是缓存
package.json 里一个没删的逗号、VSCode 终端没加载 nvm、或者 npm login 用错了账号。发布前花 30 秒跑一遍 npm pack 和 npm view,比发错后删包重来省两个小时。











