NodeJS升级至10.8.2后Powershell中npm功能失效,求解决/回退方案
解决PowerShell中npm脚本被禁用的问题(附回退方案)
问题原因
这个错误是Windows PowerShell的执行策略限制导致的——默认策略(Restricted)会阻止运行任何脚本文件,包括npm生成的.ps1脚本。
解决方案
1. 临时允许当前会话运行脚本
打开管理员权限的PowerShell,执行以下命令:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
按Y确认后,当前用户的PowerShell会话就能正常运行本地脚本(远程脚本仍需可信签名,兼顾安全)。
2. 单次绕过策略运行npm命令
如果不想修改全局策略,可以在每次运行npm时临时绕过:
powershell -ExecutionPolicy Bypass -Command "npm -v"
把npm -v替换成你需要执行的具体npm命令即可。
3. 永久生效的全局设置
若要让所有用户都能正常运行脚本,在管理员PowerShell中执行:
Set-ExecutionPolicy RemoteSigned -Scope LocalMachine
确认后,所有PowerShell会话都会允许本地脚本运行,这是Windows环境下开发常用的安全策略配置。
回退方案(恢复到Node 10.8.1)
如果不想修改执行策略,或者需要回退旧版本:
- 手动卸载当前Node.js 10.8.2,下载对应10.8.1版本的安装包重新安装;
- 使用Node版本管理器(如nvm)切换版本:
- 安装nvm后,打开PowerShell执行
nvm install 10.8.1; - 再执行
nvm use 10.8.1即可切换回旧版本。
- 安装nvm后,打开PowerShell执行
内容的提问来源于stack exchange,提问作者Tunde Isaacs
相关产品推荐
相关产品推荐

