前情
最近公司进行搬迁,换到了新租的办公室,老板为了面子,说要统一设置,全部用一样型号的,在网上租了一批办公设备,于是我们被迫进行了设备换新,这里吐槽下,新设置性能确实好了一些,但是不支持双屏,让人抓狂,新设备默认是win 11系统,最难受的主要还是需要重新配开发环境
坑位
对于开发er来说换设备是件比较痛苦的事,因为一堆开发环境和开发工具需要重新配置和安装,这次也不例外,大概经过小半天的时间,终于可以干活了,但是当我启动我的Trae,再启动命令启动项目的时候发现报红了,是的新装的Trae无法跑命令,报错信息如下:
ini
PS D:\code\blue-whale-client-uniapp> npm -v
npm : 无法加载文件 C:\nvm4w\nodejs\npm.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 中的 about_Execution_Policies。
所在位置 行:1 字符: 1
+ npm -v
+ ~~~
+ CategoryInfo : SecurityError: (:) [],PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
Why?
PowerShell 执行策略是一项安全功能,用于控制 PowerShell 加载配置文件和运行脚本的条件。 此功能有助于防止恶意脚本的执行,详见文挡:about_Execution_Policies - PowerShell | Microsoft Learn,PowerShell想运行npm.ps1,但它是脚本文件,而当前和策略是不允许脚本文件运行的,如下图,我查询到当前的我的执行策略是Undefined

下图是各种执行策略的不同能力和限制

从图中可以看出undefined是不允许脚本执行的,所以npm -v无法运行并报错
解决方案
方案1:
我惹不起,那我就躲,这也是我最开始绕开这个问题使用的方式,我很久一段时间都是直接避开使用IDE集成命令行运行命令的,都是直接在外面使用cmd来执行命令的,直到最近有同事提醒我这个错误后面有文挡引导,直接按文挡的说明改一下配置就行了,才得已从坑中爬出
方案2:
win 11新安装Trae/vs code/cursor等IDE后,在IDE中启动命令行工具的时候,默认使用是PowerShell,既然PowerShell没法用,那我们是不是可以不用它,手动切换到cmd/git bash就可以,见下图:

方案3:
通过命令行报错提示的文挡,我们可以了解到如果想通过PowerShell运行命令得更改执行策略,更改的方式如下:

- Win+R打开运行窗口
- 在打开输入框中输入powershell启动window powershell窗口
- 在窗口中输入如下命令修改PowerShell的执行策略
sql
Set-ExecutionPolicy -ExecutionPolicy Undefined -Scope CurrentUser
思考
每个人都有知识盲区,每个人都有自己的处事风格,当开发遇到坑,你可能久久爬不过来,这时我们可以想一些方法绕过去,因为项目进度你不能耽搁太久,在适当的时机可以问问身边的再事或者平时闲聊时提一下,也许同事遇到同样问题,也许他的一小小提点,你就能从中爬出来了,对于程序员的我们坚信坑坑难爬,坑坑过,对于此文如果有说的不对的地方或者你有更好的看法,欢迎不吝留言分享