npm 權限不足問題及 windows terminal 安裝使用


在命令行窗口使用 npx 創建 react 項目的時候,報錯如下圖所示。

image-20201129124554823

百度一搜,很多都是說無法啟動 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提供了多種安裝方式,包括ScoopChocolatey和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+,,或選擇

image-20201129130802095

打開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]為自己的用戶名

12642878-4a6499e2cefc8731.png

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 Terminalprofile.json

打開profile.json

image-20201129131543747

startingDirectory改為null,沒有的自己創建一個。

image-20201129131424779

照著上面的方法操作,相信右鍵菜單已經出現Windows Terminal的入口了。

image-20201129131520113

參考:

報錯記錄 |npm start 報錯 Error: spawn cmd ENOENT

Windows Terminal 使用管理員身份創建標簽頁

添加Windows Terminal到鼠標右鍵菜單


免責聲明!

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



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