这是 Windows 系统下执行 npm 命令时的脚本执行权限限制 问题,核心原因是 PowerShell 默认禁止运行未签名的脚本(npm 相关命令本质是脚本文件),所以会提示 "无法加载文件,因为在此系统上禁止运行脚本"。
有3 种解决方案 ,从临时生效 到永久生效 ,按需选择,操作都很简单:
方案 1:临时解决(单次终端有效,重启失效)
打开PowerShell(或 VS Code 内置终端),直接执行以下命令,按提示输入 Y 确认即可:
powershell
powershell
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
这个命令仅给当前用户 临时开放脚本执行权限,不用管系统级的限制,适合快速测试。
方案 2:永久解决(推荐,当前用户永久生效)
1、右键点击开始菜单 ,选择「Windows PowerShell (管理员) 」(必须用管理员身份);
2、执行以下命令,会弹出确认提示,输入 Y 回车:
powershell
powershell
Set-ExecutionPolicy RemoteSigned
3、验证是否生效:关闭所有终端,重新打开 PowerShell,执行 npm -v,能正常显示版本号就是成功了。
方案 3:换终端执行(无需修改权限,懒人首选)
如果不想修改 PowerShell 权限,可以直接用 Windows 自带的命令提示符(CMD ):
1、按下 Win+R,输入 cmd 回车,打开 CMD 终端;
2、直接在 CMD 里执行 npm 命令(如 npm install、npm run dev),完全不会有权限问题。
VS Code 里也可以把终端默认改成 CMD:终端面板 → 右上角下拉框 → 选择「Command Prompt」。
额外排查:如果以上方法无效
1、检查 npm 是否正确安装:执行 node -v 和 npm -v,如果都能显示版本,说明安装正常;若提示 "不是内部或外部命令",是环境变量未配置 ,需要把 node 安装目录的 bin 文件夹添加到系统 PATH。
2、检查文件路径是否有中文 / 空格:npm 安装目录或项目目录不要包含中文、空格(如 D:\编程\nodejs 不行,改成 D:\dev\nodejs),否则可能导致脚本加载失败。
3、重启终端 / 电脑:修改权限或环境变量后,必须重启终端 (VS Code 要重启整个软件),配置才会生效。
总结
1、核心问题是 Windows PowerShell 脚本执行权限 限制,而非 npm 本身故障;
2、快速解决用方案 1 ,长期开发用方案 2 ,不想改权限用方案 3(CMD) ;
3、若仍报错,优先检查node/npm 是否安装成功、路径是否有中文 / 空格。