Message "npm WARN config global '——global ', '——local '已弃用。使用“——location=global”代替“——location=global”;

我已经在我的机器上安装了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.
368055 次浏览

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

试试这个:

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

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

npx create-react-app your-project-name

这在Windows上是一个问题,在Windows中,npm是通过Node.js安装文件夹中的npm.cmd调用的。

见第12行。

:: 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%" %*

我提交了一个问题,这个警告在npm 8.12.1中得到了修复。-g不再弃用。

使用:

npm install -g npm-windows-upgrade


npm-windows-upgrade

选择最新版本。

这似乎解决了我的问题:

npm install --legacy-peer-deps

我正在运行Windows 11的新安装并安装了它。

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

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

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

那么你的错误就解决了。

问题在8.12.1仍然存在

npm - v

npm WARN config global --global--local已弃用。使用 --location=global。< / p >

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

步骤1:转到\ nodejs文件夹,用文本编辑器打开两个文件npm.cmdnpm

Enter image description here

步骤2:将prefix -g替换为prefix --location=global,用于npm.cmd文件的第12行和npm文件的第23行

Enter image description here

Enter image description here

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

  1. 进入文件夹C:\Program Files\nodejs
  2. 你必须编辑四个名为npmnpm.cmdnpxnpx.cmd的文件
  3. 在文本编辑器中打开文件,如Visual Studio代码
  4. 在这四个文件中,将prefix -g替换为prefix --location=global
  5. 保存全部(如果询问,保存为管理员)
  6. 准备好了!

npm.cmd文件和npx.cmd文件中,将前缀- g更改为前缀——位置=全球

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

右键单击npm.cmd文件并选择用代码打开

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

改变前缀-g 输入prefix——location=global

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

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

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

在Windows上升级npm需要手动步骤,以确保PowerShell/CMD找到新版本的npm

对于窗户用户(感谢对拉斯) 使用这个库:

打开PowerShell作为管理员并运行(有关政策的信息):

Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
npm install --global --production npm-windows-upgrade
npm-windows-upgrade --npm-version latest

记得回到最初的策略:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

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

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

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

我在窗户上遇到了这个问题,并尝试了所有提到的方法,但没有一个有效。

这基本上是由于杀毒软件造成的问题。它认为npm是恶意软件,并将其屏蔽。所以,我排除了npm阻塞,它工作了。

使用最新的npm来修复这个问题,使用给定的命令。

npm install --global npm@latest

编辑:

我在安装npm 8.12.1版本时遇到了类似的错误。

Visual Studio代码中打开命令提示符或内置的PowerShell终端。

在你的终端上使用这段代码将你当前的npm版本更新到最新。

npm i -g npm@latest

它首先会显示类似于两行的相同错误消息。然后进行安装和更新;当你运行npm -v时,更新后的npm版本不会显示错误信息。

当我检查npm版本时,我看到这个错误:

npm -v

显示错误:

npm WARN config global --global--local已弃用。使用--location=global代替。8.11.0

解决方案:

  1. 打开&;C:\Program Files\nodejs&;
  2. 打开该目录下的Visual Studio代码
  3. 打开四个文件:npm, npm。命令npx, npx. Cmd
  4. prefix -g更改为prefix --location=global
  5. 保存并运行npm -v

Enter image description here

此错误是由于npm@8.11中的一个错误,该错误在8.12中已修复。

我试图使用通过NVM为Windows安装的Node.js 16.16.0,在撰写本文的时候,它安装了npm@8.11。这个错误使得不可能只npm i -g npm@latest,所以这对我来说是有效的:

  1. https://libraries.io/npm/npm手动下载npm@8.13
  2. 检查Node.js的位置:nvm root(路径可能类似于C:\Users\username\AppData\Roaming\nvm)
  3. 将下载的npm解压缩到上面目录中的v16.16.0 \ node_modules(我需要解压缩两次-我使用7 - zip来做这一点)。

只需使用以下代码:

npm install --force
我也有同样的问题。之前的一个回答提出了与我相同的解决方案,但它有点不清楚: I am running:

节点16.16.0

NPM 8.15.0

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

< p >修复— c: \ programfiles \ nodejs \ npm。CMD //line 12

. CMD //line 12

. CMD

更改前的行:

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 (
< p >修复— C:\programfiles\nodejs\npm //line 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) 希望这能把事情弄清楚!李< / >

根据答案来自玛巴哈比卜:

< >强为Windows: < / >强

  1. < p >去:

    Enter image description here

  2. 所有的四个文件中替换

    Enter image description here

    Enter image description here

这是一个文件夹访问问题。

请遵循以下步骤:

  • 右键单击项目文件夹
  • 单击财产
  • 取消选中只读复选框
  • 单击应用
  • 然后再次尝试npm命令

Enter image description here

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

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