npm 許可權不足問題及 windows terminal 安裝使用
在命令列視窗使用 npx 建立 react 專案的時候,報錯如下圖所示。
百度一搜,很多都是說無法啟動 cmd 命令的原因,系統變數加入 cmd 所在路徑 C:\WINDOWS\system32
即可。可是新增到系統變數之後還是有這樣的問題,後來發現可能是許可權的問題,當我使用管理員許可權執行 npx create-react-app test
的時候就可以完全執行完畢。可是為什麼之前 npm / npx 建立應用的時候沒有啥問題呢?暫時不明覺厲。那如何為 npm 設定全域性的管理員許可權呢?有的文章說重灌 node 即可,但是我重灌了好幾次都沒啥用,還是一樣的問題。。。可能重灌系統可以吧!我最後的解決方法是:使用 windows terminal 這個命令列工具進行相關管理員許可權的 npm 操作。
windows terminal 安裝使用
windows terminal 是微軟與2019年推出的面向 win10 的新的命令列程式,我們可以通過微軟應用商店 或者從Github下載原始碼自行編譯安裝。這一程式把目前Windows上的PowerShell、CMD以及Windows Linux(WSL)三大環境實現了統一。
Windows下可以實現sudo
一樣的命令,來快速地對某一個標籤頁開啟管理者許可權。這裡要介紹的gsudo就可以實現我們所要的功能。
安裝gsudo
Gsudo提供了多種安裝方式,包括Scoop、Chocolatey和Powershell安裝。
由於Powershell安裝方式簡單快捷,所以這裡使用Powershell進行安裝。
首先開啟Windows Terminal,建立Powershell標籤頁,執行下述程式碼。
PowerShell -Command "Set-ExecutionPolicy RemoteSigned -scope Process; iwr -useb https://raw.githubusercontent.com/gerardog/gsudo/master/installgsudo.ps1 | iex"
安裝過程會詢問你是否打算使用 sudo
作為 gsudo
的別名,這裡可以根據個人需要進行選擇。
執行結尾顯示 Done
即表明安裝完成.
配置Windows Terminal
安裝成功後,在Windows Terminal中使用 Ctrl+,
開啟settings.json
檔案,並在list
列表中新增設定項:
"list": [
{
"guid": "{41dd7a51-f0e1-4420-a2ec-1a7130b7e950}",
"name": "Windows PowerShell Elevated",
"commandline": "gsudo.exe powershell.exe",
"hidden": false,
"colorScheme": "Solarized Dark",
"fontFace": "Fira Code",
"icon" : "https://i.imgur.com/Giuj3FT.png"
},
//...
]
其中,icon為標籤頁顯示的圖示,colorScheme為標籤頁的顏色,可以根據微軟提供的文件進行修改
設定完成後,重啟 Powershell / windows terminal,即可正常使用,在新增標籤頁的時候,使用 Ctrl+Shift+1 即可建立管理員身份的 Powershell.
同時,在普通 Powershell 視窗,也可以通過執行sudo
命令為標籤頁賦予管理員身份.
新增Windows Terminal到滑鼠右鍵選單
測試變數
下面的兩個變數後面的操作需要使用到。所以,先測試下是否正常。
echo %USERPROFILE%
echo %LOCALAPPDATA%
如果有報錯,接下來的操作,請把對應的部分進行替換。
%USERPROFILE%` 替換成 `C:\Users\[userName]`
`%LOCALAPPDATA%` 替換成 `C:\Users\[userName]\AppData\Local
注意 [userName]
為自己的使用者名稱
image
建立圖示
從以下地址下載圖示
圖示ico下載 , 開啟網址,滑鼠右鍵儲存到電腦。
開啟命令列,輸入
mkdir "%USERPROFILE%\AppData\Local\terminal"
這個命令是建立一個terminal
資料夾,把下載的圖示ico複製到這個資料夾。
寫入登錄檔
建立一個txt文件,並把檔字尾改為reg
。文件的名字可自己建立,字尾名不可以錯。右鍵選單出現Windows Terminal
有兩種方法。一種是按shift
+ 右鍵
,另一種是直接右鍵
。
shift
+ 右鍵
把下面的內容複製到reg去
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows Terminal"
"Icon"="%USERPROFILE%\\AppData\\Local\\terminal\\wt_32.ico"
"Extended"=""
[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\[user_name]\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"
注意:請把[user_name]
改成自己電腦的使用者名稱
儲存 reg 檔案之後需要雙擊將配置寫入登錄檔中
右鍵
把下面的內容複製到reg去
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\wt]
@="Windows terminal here"
"Icon"="%USERPROFILE%\\AppData\\Local\\terminal\\wt_32.ico"
[HKEY_CLASSES_ROOT\Directory\Background\shell\wt\command]
@="C:\\Users\\[user_name]\\AppData\\Local\\Microsoft\\WindowsApps\\wt.exe"
注意:請把[user_name]
改成自己電腦的使用者名稱
儲存 reg 檔案之後需要雙擊將配置寫入登錄檔中
修改Windows Terminal
的profile.json
開啟profile.json
把startingDirectory
改為null
,沒有的自己建立一個。
照著上面的方法操作,相信右鍵選單已經出現Windows Terminal
的入口了。
參考: