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就正常了。
相关推荐
yourkin6664 天前
npm run 常见脚本
前端·npm·node.js
我不是李.杨5 天前
解决 npm i node-sass@4.12.0 安装失败异常 npm i node-sass异常解决
rust·npm·sass
艾小码5 天前
三大 Node.js 包管理器对决:npm、yarn、pnpm 深度横评
npm·yarn
金金金__6 天前
无废话,直接干,一篇短篇教你利用Corepack安装Yarn~
npm·yarn
liliangcsdn7 天前
`npm error code CERT_HAS_EXPIRED‘ 问题
前端·npm·node.js
Rattenking7 天前
【npm 解决】---- TypeError: crypto.hash is not a function
前端·npm·哈希算法
这是个栗子7 天前
npm报错:npm install 出现“npm WARN old lockfile”
前端·npm·node.js·编辑器
努力奋斗19 天前
npm ERR! code CERT_HAS_EXPIRED:解决证书过期问题
前端·npm·node.js
西岭千秋雪_9 天前
前端工程化:npm&vite
前端·javascript·npm·node.js
太阳伞下的阿呆10 天前
npm安装下载慢问题
前端·npm·node.js