npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1

问题描述

使用git bash, cmd运行npm都可以,但是用Power Shell运行npm,却报错:

npm : 无法加载文件 C:\Program Files\nodejs\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1

  • npm
  • ~~~
  • CategoryInfo : SecurityError: (:) \[\],PSSecurityException
  • FullyQualifiedErrorId : UnauthorizedAccess

原因分析

该问题通常发生在安装nvm之后,环境变量发生变化,npm.cmd执行方式也发生变化。而Power Shell默认执行策略比较严格,是Restricted,阻止了nvm相关脚本的执行。

解决方案

两种方案,推荐第二种。

方案一,把npm.cmd的运行路径加入到环境变量path中。例如:

"C:\Users\zxcv\AppData\Roaming\nvm\v22.14.0\node_modules\npm\bin\"

这会导致一个问题是,后面用nvm use xxx切换了node版本后,运行npm可能会有问题。

方案二,修改Powser Shell的执行策略。

  1. 右键开始菜单,选择"终端管理员",打开PS窗口。

  2. 查看当前执行策略:

bash 复制代码
Get-ExecutionPolicy

默认显示Restricted.

  1. 修改策略
bash 复制代码
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
  1. 验证修改结果:
bash 复制代码
Get-ExecutionPolicy

应显示为:RemoteSigned。

含义为:允许运行本地脚本,远程脚本需签名(平衡安全与便利)。

  1. 重启vs code的power shell终端,再运行npm就正常了。
相关推荐
少年的范儿7 小时前
Windows 安装 Node.js 教程:nvm 版本管理 + pnpm 安装配置
windows·npm·node.js
peach8 小时前
同样是装依赖,为什么 npm 长成 node_modules,Maven 长成 .m2
npm·node.js·maven
JoePotter20 小时前
从零搭建华为云 EVS 每日自动快照:hcloud + PowerShell + 邮件报告实战
华为云·自动化运维·powershell·evs·koocli·快照备份·mailozaurr
chunyublog2 天前
HDFS 上传文件名空格问题排障教程
前端·javascript·npm
MasonYyp3 天前
安装npm依赖仓库Verdaccio
前端·npm·node.js
JoePotter4 天前
Restic 备份工具使用指南(Windows Server 2019 适配版)
powershell·数据备份·windows server·运维自动化·restic
jiangliushi64 天前
GPT-6.1 Sol 免费用:PowerShell 装 Codex 报“禁止运行脚本 npm.ps1”?一条命令解决
前端·gpt·npm
Elcker6 天前
YnuoAgent(依诺):一个 npm 包,跑起属于自己的 AI 研发平台
前端·人工智能·npm
DogDaoDao7 天前
Windows 双 Shell 全面对比:CMD 与 PowerShell 的技术剖析
windows·shell·测试·powershell·cmd·程序员开发
Patrick_Wilson8 天前
悬浮提示从哪来:LSP、tsserver 与 .d.ts
typescript·npm·前端工程化