一、起因:
半年沒使用vue了,感覺對vue都快手生了,所以想用vue寫些demo,但是由於上個星期剛剛重新安裝系統,計算機的環境又被清空了,所以又苦逼的安裝了一下node環境與vue腳手架。
二、問題:
當一切安裝就緒時,在電腦自帶的cmd的窗口下面輸入npm指令,可以正常運行。
但是在vscode下面卻出現這個錯誤:
三、解決方法
這個問題,貌似我之前好像遇過,但是后來好像不知道怎么解決了,由於之前剛剛開始學習vue,所以就把重心花在學習上面了,忽略這個問題的記錄,所以當出現這個問題時,我就覺得有點熟悉又陌生的感覺,所以我按常規操作,打開瀏覽器,查了一下解決方案,但是好家伙,答案千奇百怪,然而卻沒有一個適合我
1.有的教我添加環境變量,說是node的環境變量沒有加入到系統里面,但是現在安裝的node,它都會默認追加到系統環境變量里面,所以不是這個問題。
2.有的叫我以管理員身份運行,但是我本身就是以管理員身份登錄的,但是我還是重新用管理員身份打開了vscode,發現還是沒有解決問題;
3.有的說是vscode默認建立的終端時powershell,得重新選擇cmd建立終端。但是powershell本身就是cmd的超集,所以貌似覺得這位博主在放屁,但是我沒有證據證明他在放屁,所以還是重新關掉vscode,重新以管理員身份運行,重新新建cmd終端,但是vscode的報錯變了,變成了:‘npm‘ 不是內部或外部命令,也不是可運行的程序 或批處理文件
4.這位同學提出教我查看vscode的當前策略
這個雖然也解決不了問題,但是算是擴展了一下知識面,所以我查了一下這個策略是啥?
執行策略
使用命令
Get-ExecutionPolicy
確定當前執行策略
Restricted
腳本不能運行 受限制的(默認設置)
Unrestricted
允許所有的腳本運行
RemoteSigned
本地創建的腳本可以運行,但從網上下載的腳本不能運行
AllSigned
僅當腳本由受信任的發布者簽名時才能運行。
Set-ExecutionPolicy
以管理員身份修改策略
本地策略為Restricted,所有腳本不能運行,受限制的,需繞過
繞過姿勢1
powershell.exe -ExecutionPolicy Bypass -File .\test.ps1
繞過姿勢二powershell.exe -exec bypass -Command "& {Import-Module E:\Desktop\powershelll\test.ps1}"
繞過姿勢3powershell.exe -exec bypass -Command "& {Import-Module E:\Desktop\powershelll\test.ps1;InvokeAllChecks}"

所以我覺得應該是vscode本身在讀取電腦環境變量配置中出現了疏漏,我猜測vscode每次開機,自動讀取電腦環境變量配置,然后再根據配置建立終端,所以沒有重啟電腦的情況下,剛剛安裝的node環境變量沒有被vscode得知,所以vscode會出現這個錯誤。當然這個只是我的一個猜測。