"sudo npm install -g create-react-app" 命令无效

"sudo npm install -g create-react-app" command not working

我刚开始学习 Reactjs,我正在学习教程,我们安装的第一件事是带有 npm 的 Nodejs,我安装了最新版本没有任何问题

节点 - v14.17.0 npm - 6.14.13

node and npm version

现在讲师告诉我们 create-react-app 的好处,并展示了如何使用终端在我们的系统上安装包(他说在 windows 上使用 gitbash),他使用命令

sudo npm install -g create-react-app

在他的 Mac 上并且它已成功安装在他的系统上,他提到 -g 将确保在全局安装它以便我们可以在任何地方使用它。然后他使用

创建了一个项目
create-react-app hello_world

并显示了它创建的文件夹,还使用了命令

npm start

并显示它有效,但是当我在笔记本电脑上打开 gitbash (OS - Windows 10) 并使用命令

sudo npm install -g create-react-app

它说 sudo: command not found

gitbash error

我在 cmd 上试过,它也在那里出错

'sudo' is not recognized as an internal or external command,
operable program or batch file.

我尝试在 Internet 和 YouTube 上搜索,但它们显示了不同的安装 create-react-app 的命令,我想知道为什么这个命令在我的系统上不起作用?

npm -v 命令也成功运行并给出了安装的版本,所以我认为 npm 安装没有问题,因为我是全新的,所以我不知道哪里出了问题所以请帮忙。

"sudo" = "super user do" 是 Unix / Linux / Mac 终端方式 运行 有权为整个系统写入和更改文件的命令/ 对于所有用户,您可以通过“管理员”权限在 Windows 上执行的操作。它不是 Bash 的一部分,因此 Git Bash for Windows 没有或模拟它。

因此,只需尝试不带 sudo 的命令,即

npm install -g create-react-app

是否需要“sudo”或 Windows 管理员权限(特权提升)取决于整个系统的配置,在这种情况下,尤其是 Node.js。在我面前的机器上(带有预设)我需要 sudo 来访问一些“全局”Node.js 目录,但对于其他人则不需要,在我身后桌子上的机器上我根本不需要 sudo 来访问 Node 的“全球”目录。您应该始终先尝试不带“sudo”的命令,然后等待系统明确告诉您您需要特殊权限才能执行该操作。

Note btw that you will find trillions of examples and "solutions" on the internet with "sudo" where no "sudo" is necessary and will rather do damage than help.

另一个故事是你的导师的方式有点过时了。使用当前的 Node.js / NPM 版本(例如,如果您是新安装的),您通常不会在全局范围内安装诸如 create-react-app 之类的软件包,而是“本地”安装,即每个项目,并且在一行中非常简单使用 npx 而不是 npm(“x”与“m”)创建项目:

npx create-react-app hello_world

请注意 https://create-react-app.dev/docs/getting-started/ 上的声明“npx 始终使用最新版本”有点误导:npx 不会更新您系统上的现有包,但它会下载您的机器上尚不存在的包,为此显然总是会获得最新版本。 为此你不应该全局安装包(“-g”),因为 npx 可能会在几年内使用你曾经为短期课程安装的全局安装包版本(忘记了)对于一个新项目而不是最新版本,或者,反过来,你的旧课程项目仍然可以工作,因为它使用的是当时的包版本,而不是五年后缺少一些不推荐使用的功能的版本。