报错代码:
npm : 无法加载文件 C:\Users\2409000014\AppData\Local\fnm_multishells\14956_1733122959640\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 a bout_Execution_Policies。 所在位置 行:1 字符: 1 + npm install axios + ~~~+ CategoryInfo : SecurityError: (:) [],PSSecurityException+ FullyQualifiedErrorId : UnauthorizedAccess
问题分析:
这个报错是由于 Windows PowerShell 的 执行策略(Execution Policy) 禁止运行脚本。npm
尝试运行一个 PowerShell 脚本
(npm.ps1
),但你的系统由于安全策略限制,无法执行这个脚本。
报错信息中的关键部分是:无法加载文件 ... npm.ps1,因为在此系统上禁止运行脚本。
这意味着 PowerShell 的执行策略设置为禁止运行脚本,导致你无法执行 npm
命令。
解决方法:
你可以通过更改 PowerShell 的执行策略来解决这个问题。以下是如何操作:
1. 打开 PowerShell 作为管理员
- 按
Win + X
,选择 Windows PowerShell (管理员) 或 Windows Terminal (管理员)。 - 在弹出的管理员权限的 PowerShell 窗口中运行以下命令。
2. 查看当前执行策略
运行以下命令来查看当前的执行策略:
Get-ExecutionPolicy
如果结果是 Restricted
或 AllSigned
,就会出现无法执行脚本的情况。
3. 修改执行策略
为了允许 PowerShell 执行脚本,你需要更改执行策略。运行以下命令,将执行策略设置为 RemoteSigned 或 Unrestricted:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
RemoteSigned
允许本地脚本运行,但要求从网络下载的脚本必须有有效签名。
Unrestricted
允许所有脚本运行(不建议使用,因为可能会存在安全风险)。
如果你选择 RemoteSigned
,这应该就足够解决大多数问题。
4. 确认修改
系统会提示你确认更改,输入 Y
并按 Enter
键。
5. 再次运行 npm
命令
修改执行策略后,关闭当前的 PowerShell 窗口,重新打开一个新的 PowerShell 窗口(普通模式或管理员模式),然后再尝试运行 npm
命令:
npm install axios
解释:
- Execution Policy 是 PowerShell 的一种安全功能,用来防止恶意脚本的执行。默认情况下,Windows 的 PowerShell 执行策略可能会禁止执行非签名的脚本,导致
npm
无法运行。 - 通过设置执行策略为
RemoteSigned
,你允许 PowerShell 运行本地脚本和网络下载的已签名脚本,从而解决了问题。
注意:
Set-ExecutionPolicy
只会影响 PowerShell,不会影响其他的命令行工具(如cmd
或Git Bash
)。在 PowerShell 中修改后,npm
命令应该能正常执行。
转自:chartGPT