我已经在我的机器上安装了Node.js,但当我尝试运行npm install -g create-reactapp时,它会显示以下警告:

npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
npm WARN deprecated tar@2.2.2: This version of tar is no longer supported, and will not receive security updates. Please upgrade asap.

changed 67 packages, and audited 68 packages in 4s

4 packages are looking for funding
  run `npm fund` for details

2 high severity vulnerabilities

Some issues need review, and may require choosing
a different dependency.

Run `npm audit` for details.

当前回答

我解决这个问题的方法是:

进入C:\Program Files\nodejs文件夹 你需要编辑四个文件,分别是npm和npm。命令npx, npx. Cmd 在文本编辑器中打开文件,比如Visual Studio Code 在这四个文件中,将prefix -g替换为prefix——location=global 保存全部(如果询问,保存为管理员) 准备好了!

其他回答

我解决这个问题的方法是:

进入C:\Program Files\nodejs文件夹 你需要编辑四个文件,分别是npm和npm。命令npx, npx. Cmd 在文本编辑器中打开文件,比如Visual Studio Code 在这四个文件中,将prefix -g替换为prefix——location=global 保存全部(如果询问,保存为管理员) 准备好了!

请下载最新版本的Node for Windows

正如无数其他答案所提到的,这是由某个版本的Node(特别是与Node捆绑在一起的NPM版本)中的错误引起的,但似乎还没有其他答案提到的是解决它的最简单方法。

不需要手动编辑任何文件,甚至不需要在CLI中运行任何东西——只需从Node.js站点获取最新版本的Node.js。让它安装和编译它需要的东西,最后您将得到Node的最新版本,该版本不再包含此警告。除此之外,保持最新版本的Node/NPM是一个很好的做法,它可以节省你在2023年9月11日Node 16 EOLed时更新的时间。

如果您使用的是Windows系统,请以管理员身份尝试以下操作:

npm install -g npm-windows-upgrade
npm-windows-upgrade

并选择8.12.1(最新版本)进行安装。

问题在8.12.1仍然存在

npm - v npm WARN config global——global,——local已弃用。使用 ——位置=全球。 8.12.1

解决方法为:

以管理员身份运行打开文件,否则无法编辑。

C:\Program Files\nodejs\npm.cmd

默认代码为:

:: Created by npm, please don't edit manually.
@ECHO OFF

SETLOCAL

SET "NODE_EXE=%~dp0\node.exe"
IF NOT EXIST "%NODE_EXE%" (
  SET "NODE_EXE=node"
)

SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js"
FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g') DO (
  SET "NPM_PREFIX_NPM_CLI_JS=%%F\node_modules\npm\bin\npm-cli.js"
)
IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" (
  SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%"
)

"%NODE_EXE%" "%NPM_CLI_JS%" %*

将上述代码替换为以下代码:

:: Created by npm, please don't edit manually.
@ECHO OFF

SETLOCAL

SET "NODE_EXE=%~dp0\node.exe"
IF NOT EXIST "%NODE_EXE%" (
  SET "NODE_EXE=node"
)

SET "NPM_CLI_JS=%~dp0\node_modules\npm\bin\npm-cli.js"
FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix --location=global') DO (
  SET "NPM_PREFIX_NPM_CLI_JS=%%F\node_modules\npm\bin\npm-cli.js"
)
IF EXIST "%NPM_PREFIX_NPM_CLI_JS%" (
  SET "NPM_CLI_JS=%NPM_PREFIX_NPM_CLI_JS%"
)

"%NODE_EXE%" "%NPM_CLI_JS%" %*

npm - v 8.12.1

npm WARN config global——global,——local已弃用。使用——location=global代替。需要安装以下软件包:

我正面临上述错误,所以我简单地做了这些步骤:

不要在你安装Node.js的同一个驱动器上创建一个文件夹来写命令npx create-react-app project-name 如果你在C:驱动器上安装Node.js,那么试着在另一个驱动器上创建一个文件夹来练习react 所以我把文件夹放在D:驱动器上,因为我在E:驱动器上安装Node.js 打开文件夹上的命令提示符,然后写入 NPX create-react-folder my-app命令

那么你的错误就解决了。