在vscode中運行npm及node命令,顯示無法將“npm”識別為 cmdlet、函數、腳本文件或可運行程序的名稱


一、起因:

半年沒使用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,所有腳本不能運行,受限制的,需繞過

繞過姿勢1powershell.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}"

所以至少在探索問題中,我學到了這個powershell的策略,了解了它的大概。
 
最后在上面都試過之后,發現都沒辦法解決我的問題,我最后重啟電腦,最后成功解決問題。

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM