优先修改npm全局目录至用户目录(如~/.npm-global),配置prefix并更新PATH,避免sudo提权导致权限混乱。

npm install -g 报 EACCES 或 permission denied 怎么办
这不是 VSCode 的 bug,而是 npm 试图往系统级路径(比如 /usr/local/lib/node_modules 或 C:\Program Files\nodejs\node_modules)写文件,但当前用户没权限。直接开管理员终端是下策,容易埋雷。
- macOS/Linux:优先运行
npm config set prefix ~/.local,再把~/.local/bin加进$PATH(改~/.zshrc或~/.bashrc),之后npm install -g就写进用户目录 - Windows:用
npm install --user替代全局安装;若必须装 CLI 工具(如vercel),先确认它是否支持本地安装,否则再考虑管理员模式 - 别在 VSCode 终端里敲
sudo npm install -g——npm 会以 root 身份执行脚本,可能污染系统或破坏 node_modules 权限
PowerShell 报 “xxx.ps1 cannot be loaded because running scripts is disabled”
这是 PowerShell 执行策略限制,和文件权限无关。VSCode 默认终端是 PowerShell,而它的默认策略是 Restricted,连本地 .ps1 都不放行。
- 只需在 VSCode 终端中运行:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser - 执行后重启终端(关掉再开一个),不用管理员权限也能生效
- 验证是否成功:
Get-ExecutionPolicy -Scope CurrentUser应返回RemoteSigned - 如果误设了
-Scope LocalMachine,得用管理员 PowerShell 改回来,普通终端无法覆盖
为什么改了终端默认 shell 还是打开 PowerShell
VSCode 不会自动记住你某次选的终端类型。每次新建终端,它都按配置决定启动哪个 shell,而不是“继承上次选择”。
- 快捷键
Ctrl+Shift+P→ 输入Terminal: Select Default Profile→ 回车 → 选Command Prompt或Git Bash - 这个设置会写入用户 settings.json,影响所有工作区,不是临时切换
- 如果选了 WSL,确保 WSL2 已启用且发行版已安装,否则终端会卡在启动状态
- 改完不用重启 VSCode,新开终端即生效
npm run xxx 失败但命令本身没问题
这类问题十有八九和终端环境有关,不是权限,而是 PATH、shell 初始化或工作目录没对上。
- 检查
which npm(macOS/Linux)或where npm(Windows CMD)是否指向你预期的 Node.js 安装路径 - PowerShell 中某些 npm script 依赖
bash命令(比如用sh启动的构建脚本),但默认没装 Git Bash 或没加进 PATH - VSCode 终端不会自动加载 shell 的交互式配置(如
.zshrc),导致 alias、PATH 补充失效;可手动source ~/.zshrc临时修复 - 右键文件夹 → “在集成终端中打开”,比从空终端
cd更可靠,能避免路径拼错或符号链接解析失败
EACCES、permission denied、cannot be loaded、command not found,它们各自指向完全不同的解决路径。


















