我已经在我的机器上安装了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 保存全部(如果询问,保存为管理员) 准备好了!

其他回答

我也遇到了同样的问题。之前的一个回答提出了与我相同的解决方案,但它有点不清楚: 我在跑步:

节点16.16.0

NPM 8.15.0

在两个脚本中,我将:'prefix -g'替换为'prefix——location=global'。这将解决windows控制台和shell (BASH)的问题。

修复, c: \ programfiles \ nodejs \ npm。CMD //第12行

更改前的行:

FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix -g' (

更改后的行:

FOR /F "delims=" %%F IN ('CALL "%NODE_EXE%" "%NPM_CLI_JS%" prefix --location=global') DO (

修复, C:\programfiles\nodejs\npm //第23行

更改前的行:

NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix -g`

更改后的行:

NPM_PREFIX=`"$NODE_EXE" "$NPM_CLI_JS" prefix --location=global`

这些更改处理了每次调用npm时得到的警告。希望这澄清和帮助!

这是在Windows 11 Pro, Windows 10 Pro, Ubuntu 20.04.4 LTS (GNU/Linux 5.10.102.1-microsoft-standard-WSL2 x86_64)上测试的。

我使用以下shell:

GitBash PowerShell cmd Ubunto (WSL) 希望这能把事情弄清楚!

你没有得到一个错误。这是一个警告,意味着你的命令仍然有效,但将来可能不会了。

试试这个:

npm install --location=global create-react-app

顺便说一下,你可以使用Create React App,而不用将其安装为全局依赖项。是这样的:

npx create-react-app your-project-name

问题在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

不幸的是,我不能在这里评论或投票,但Md Rehan是对的。只需安装最新的npm版本:

npm i -g npm@latest

npm在> 8.13版本中修复了这个问题(我相信) 在撰写本文时,它甚至是8.19.2

它很容易打开和编辑npm。如果以管理员身份登录,则使用Visual Studio Code打开cmd文件。

右键单击npm。然后选择“用代码打开”。

该文件将在Visual Studio Code中打开。

Change prefix -g 到prefix——location=global

当你完成并尝试关闭文件时,Visual Studio Code将在右下角弹出一个消息:

保存“npm”失败。cmd `:权限不足。选择“以管理员身份重试”以管理员身份重试。

单击“以管理员身份重试”。npm。CMD文件将被保存,并且在启动时不再出现警告。