在命令行窗口使用 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就可以实现我们所要的功能。
安装gsudoGsudo提供了多种安装方式,包括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中使用 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