在命令行窗口使用 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
的入口了。
參考: