无法加载文件 C:\Users\*****\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。——VScode终端问题解决办法


一、VScode终端运行命令出现的问题

  1. 运行其他命令无法加载脚本(cnpm被禁止,但是npm可用)
    无法加载文件 C:\Users\WXD\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Executi
    on_Policies。
    无法加载文件 C:\Users\*****\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。——VScode终端问题解决办法
  2. 修改方法出错
    使用get-ExecutionPolicy查看执行策略发现是被禁止的,修改set-ExecutionPolicy RemoteSigned策略被禁止。
    无法加载文件 C:\Users\*****\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。——VScode终端问题解决办法

二、解决方法

其实比较难发现的是问题1,PowerShell的默认策略是Restricted。

  • Restricted 执行策略不允许任何脚本运行。
  • AllSigned 和 RemoteSigned 执行策略可防止 Windows PowerShell 运行没有数字签名的脚本。

发现上述问题后,接下来就好解决了用下面代码来查看和修改策略

  • 若要了解计算机上的现用执行策略,请输入:get-ExecutionPolicy
  • 若要在本地计算机上运行您编写的未签名脚本和来自其他用户的签名脚本,请输入以下命令将计算机上的 执行策略更改为 RemoteSigned:set-ExecutionPolicy RemoteSigned

问题2看提示就能知道是权限不够,方法有两个,一个是用管理员权限或者设置管理员权限打开VScode修改执行策略,另一个是用管理员权限打开powershell进行修改。如下:

  1. 方法一:VScode修改权限
    无法加载文件 C:\Users\*****\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。——VScode终端问题解决办法
    或者直接管理员权限打开
    无法加载文件 C:\Users\*****\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。——VScode终端问题解决办法
    修改成功,可以执行其他命令了!
    无法加载文件 C:\Users\*****\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。——VScode终端问题解决办法
    如果上述方法一还无法解决,可以尝试修改系统的powershell执行策略。

  2. 方法二:修改Windows的powershell权限
    首先打开电脑桌面左下角的徽标图标,然后输入powershell,再用管理员身份运行powershell。
    无法加载文件 C:\Users\*****\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。——VScode终端问题解决办法
    无法加载文件 C:\Users\*****\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。——VScode终端问题解决办法
    以上就是方法二了,实际上和vscode执行是一样的,因为vscoed的终端实际上就是powershell,重要的是获取到管理员的权限后去修改脚本执行策略。


总结

这个问题其实刚开始用VScode就遇到了,但是npm这条命令可以执行,其他命令不能执行,可能是因为npm这条命令在全局环境变量里面进行了配置,所以能用npm而其余命令无法执行,这个具体我也不太清楚,但是大概率是因为这一点,刚开始使用npm够用了,后面发现其他命令也需要了,才对这个问题进行解决,主要还是懒吧!居然靠着npm撑了这么久,修改以后一些下载脚本就可以运行了。继续加油吧!希望毕业后能找到一份心仪的工作。

—— 2020.11.19 16:01 感觉今天可以写两篇博客,终于能补齐落下的了,加油!继续冲!

世上只有10种人,一种懂二进制,一种不懂二进制