一、背景
在Visual Studio Code工具中,打开VUE3项目。在Terminal中的命令行启动项目时报错。
> PS E:\dengxl\projects\hello_vue3> npm run dev
npm : 无法加载文件 C:\nvmForWindows\nodejs\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?Li
nkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
+ npm run dev
+ ~~~
+ CategoryInfo : SecurityError: (:) [],PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
二、原因
这个错误表明你尝试在windows系统上运行npm脚本时,PowerShell检测到脚本执行被限制。默认情况下,windows上的PowerShell可能会限制脚本的执行以增强安全性。
在Windows上,当尝试运行某些脚本(如:.psl文件),如果系统的执行策略不允许运行脚本,就会出现类似错误。
三、解决办法
第一种:修改PowerShell执行策略
1. 搜索PowerShell,点击Windows PowerShell,可用当前用户身份或者管理员身份。
2. 检查当前执行策略。
在PowerShell中输入一下命令查看当前的执行策略。
PS C:\Users\deng_> Get-ExecutionPolicy
Restricted
常见的执行策略包括:
- Restricted (默认,禁止运行脚本)
- AllSigned (只允许运行经过签名的脚本)
- RemoteSigned (允许本地脚本运行,远程脚本需要签名)
- Unrestricted (允许运行所有脚本)
3. 修改当前执行策略。
3.1 如果使用当前用户身份打开PowerShell,需要先确定策略生效范围。执行以下命令。
PS C:\Users\deng_> Set-ExecutionPolicy -Scope CurrentUser
PowerShell会提示用户输入要修改的执行策略。可以改为RemoteSigned(推荐)或者Unrestricted。
PS C:\Users\deng_> Set-ExecutionPolicy -Scope CurrentUser
位于命令管道位置 1 的 cmdlet Set-ExecutionPolicy
请为以下参数提供值:
ExecutionPolicy: 在此处输入要修改的执行策略。RemoteSigned 或者 Unrestricted
3.2 如果使用超级管理员身份打开PowerShell,可直接执行以下命令。
PS > Set-ExecutionPolicy RemoteSigned
4. 重试运行脚本。
第二种:使用命令提示符(cmd)或者其他终端
如果你不想修改PowerShell的执行策略,可以尝试使用其他终端。比如:
- Windows命令提示符(cmd)
- 第三方终端工具,如:Git Bash、Windows Terminal
在这些终端中,直接运行npm命令,可能不会触发PowerShell的脚本限制。
1. 将Visual Studio Code的Terminal使用的终端改为cmd
在Terminal窗口的右上角,点击箭头进行切换即可。
更详细的信息,请参考文档:blog.csdn.net/NIIT0532/ar…