首页 > 解决方案 > “sudo npm install -g create-react-app”命令不起作用

问题描述

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

节点 - v14.17.0 npm - 6.14.13

节点和 npm 版本

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

sudo npm install -g create-react-app

在他的 Mac 上并且它已成功安装在他的系统上,他提到 -g 将确保在全球范围内安装它,以便我们可以在任何地方使用它。然后他创建了一个项目使用

create-react-app hello_world

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

npm start

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

sudo npm install -g create-react-app

它说 sudo: command not found

gitbash 错误

我在 cmd 上尝试过,它也在那里给出了错误

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

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

npm -v 命令也成功运行并给出了安装的版本,所以我认为 npm 安装没有问题,而且由于我是全新的,我不知道可能出了什么问题,所以请帮忙。

标签: node.jsreactjscreate-react-appnpm-installsudo

解决方案


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

所以只需尝试不带 的命令sudo,即

npm install -g create-react-app

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

请注意,顺便说一句,您会在互联网上找到数以万亿计的带有“sudo”的示例和“解决方案”,其中没有“sudo”是必要的,并且宁愿破坏而不是帮助。

另一个故事是你的导师的方式有点过时了。使用当前的 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 可能会在几年后使用您曾经为新项目的短期课程(并忘记)安装的全局安装的软件包版本,而不是最新版本,或者反过来说,您的旧课程项目仍然可以工作,因为它使用的是当时的包版本,而不是五年后的版本,缺少一些已弃用的功能。


推荐阅读