"npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead"

回答 22 浏览 35.2万 2022-05-27

我已经在我的机器上安装了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.
uttam kamar 提问于2022-05-27
你的node和npm的版本是什么?Likepineapple 2022-05-27
节点版本:16.15.0 Npma:8.11.0uttam kamar 2022-05-27
是否有一些关于为什么要改变这一点的帖子?写-g--location=global更容易记忆和输入。Joshua 2022-06-02
@uttam kamar:请"接受"Lars回答下面。注意:1)问题在于Windows(相对于"npm"或NodeJS本身),2)它应该在NPM 8.12.1及以上版本中得到修复。paulsm4 2022-06-14
我使用的是8.12.1,但仍然收到警告。Tadas V. 2022-06-14
22 个回答
#1楼
得票数 262

第1步:进入nodejs文件夹,用文本编辑器打开npm.cmdnpm这两个文件。

Enter image description here

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

Enter image description here

Enter image description here

Majbah Habib 提问于2022-06-07
Peter Mortensen 修改于2022-09-04
尝试了这些步骤。但仍然得到 npm WARN config global --global, --local 已弃用。请改用--location=global。 npm 错误!运行任何 npm/npx 命令时出现意外令牌“。” 错误basith 2022-06-07
编辑npm文件对我来说是个诀窍。当我只是编辑npm.cmd时,什么都没有发生。我在Windows上使用git bash。竖起大拇指Jonathan Nielsen 2022-06-07
另外,请记得编辑npx.cmd文件,否则在运行npx husky install这样的命令时,我们会得到同样的错误。miniGweek 2022-06-23
我还需要编辑npxnpx.cmd文件。arecaps 2022-06-29
需要以管理员身份保存,但摆脱了这一信息,谢谢!Dan Marshall 2022-07-27
#2楼
得票数 171

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

对于Windows用户(感谢Lars),使用这个库

administrator的身份打开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
ZiiMakc 提问于2022-06-12
ZiiMakc 修改于2022-09-22
今天(2022年6月15日),这就解决了我的问题。Nilo Paim 2022-06-15
它解决了我的问题windows11(2022年6月17日)。caroline mwasigala 2022-06-17
谢谢你,对我来说也是如此。窗口10Sigal Zahavi 2022-06-20
运行Set-ExecutionPolicy Unrestricted真的是非常糟糕的建议。至少要以RemoteSigned的方式运行(在管理员终端运行Set-ExecutionPolicy RemoteSigned)。theking2 2022-06-29
@theking2完成后,我再次将政策设置为Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -ForceArul 2022-07-18
#3楼
得票数 123

为了解决这个问题,我所遵循的解决方案是。

  1. 转到文件夹C:\Program Files\nodejs
  2. 你必须编辑四个名为npmnpm.cmdnpxnpx.cmd的文件。
  3. 在一个文本编辑器中打开文件,如Visual Studio Code
  4. 将所有四个文件中的prefix -g改为prefix --location=global
  5. 保存所有(如果被问及,请以管理员身份保存)。
  6. 很好,可以走了!
samakshGrover 提问于2022-06-08
Chris 修改于2022-07-03
当在tmp目录下安装软件包时出现错误时,这个方法也能起作用。Pablo Garcia 2022-10-20
#4楼
得票数 48

这是在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不再是废弃的了。

Lars 提问于2022-06-02
Peter Mortensen 修改于2022-06-26
我用npm install -g npm@latest更新到npm 8.12.1,但我仍然得到npm WARN config global --global, --local`被弃用。请使用--location=global代替。Dina M. 2022-06-05
@Huy 你更新到了npm 8.12.1,当你进行npm -v时,就不再有这个警告了?Dina M. 2022-06-05
在Windows上升级npm并不像在Linux上那样通过npm本身来实现。你必须使用npm-windows-upgrade来更新包装脚本npm.cmd的正确位置。npmjs.com/package/npm-windows-upgradeLars 2022-06-06
@DinaM. 是的,我不再看到那个警告了。我只是用npm -g update更新了npm,不知道这是否有帮助。Huy 2022-06-06
@Huy 谢谢你的回答。我已经做了几次,但当我做npm -v时,我仍然得到npm WARN config global --global, --local are deprecated. Use --location=global instead. 8.12.1Dina M. 2022-06-07
#5楼
得票数 29

当我检查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.cmd、npx、npx.cmd。
  4. prefix -g改成prefix --location=global
  5. 保存并运行npm -v

Enter image description here

Art Bindu 提问于2022-07-12
Art Bindu 修改于2022-10-21
很好的修复!我刚刚用了这个,有趣的是你在3个小时前发布了这个:DPaal Pedersen 2022-07-12
这解决了npm -v,但没有解决npm i -gnpm i --location=global。实际上,没有npm i命令对我有用。Adam Jagosz 2022-07-12
嗨,@AdamJagosz 关闭你的终端/编辑器并重新开始。如果它不工作,就重新启动你的系统。如果你做了修改,那么它应该工作。npm -v -g & npm -v。这是我目前的状态。``D:\MK>npm -v -g npm WARN 配置全局的--global, --local已经废弃。请使用--location=global代替。8.11.0 D:\MK>npm -v 8.11.0 ````。Art Bindu 2022-07-12
我有nvm为Windows安装的节点,所以我替换了C:\Users\adamj\AppData\Roaming\nvm\v16.16.0中的出现。这是我之后得到的东西。npm i --location=global npm@8.13 npm ERR! Unexpected token '.' 我还应该提到我在C:\Windows\System32没有这样的文件。Adam Jagosz 2022-07-13
非常好!警告已经消失了,简短而精确的解决方案。Zujaj Misbah Khan 2022-08-06
#6楼
得票数 15

使用方法。

npm install -g npm-windows-upgrade

npm-windows-upgrade

选择最新的版本。

Gladiston leal 提问于2022-06-05
Peter Mortensen 修改于2022-06-26
在Windows 11上,我首先安装了npm 8.16。然后我按照你的建议运行了npm install -g npm-windows-upgrade。此后,npm -v仍然显示:npm WARN config global --global, --local已经过时。使用--location=global代替。CAK2 2022-08-05
信息。npm-windows-upgrade需要管理员权限。Fotis Kolytoumpas 2022-08-09
#7楼
得票数 9

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

试试这个吧。

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

顺便说一下,你可以使用创建React应用程序,而不必将其作为全局依赖项安装。像这样。

npx create-react-app your-project-name
Huy 提问于2022-06-01
Peter Mortensen 修改于2022-06-26
#8楼
得票数 8

在8.12.1版本中,问题仍然存在

npm -v

npm WARN config global --global, --local已被废弃。请使用--location=global代替。

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

Sunil Sapkota 提问于2022-06-07
#9楼
得票数 5

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

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

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

Ε Г И І И О 提问于2022-06-16
或者只是npx npm-windows-upgradejordanbtucker 2022-09-30
#10楼
得票数 4

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

npm install --global npm@latest
Md Rehan 提问于2022-07-04
#11楼
得票数 3

这似乎为我解决了这个问题。

npm install --legacy-peer-deps

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

tralawar 提问于2022-06-06
Peter Mortensen 修改于2022-06-26
#12楼
得票数 2

prefix -g改为prefix --location=globalnpm.cmd文件中,以及npx.cmd文件中。

Muh Farhan Setiawan 提问于2022-06-09
Peter Mortensen 修改于2022-06-26
#13楼
得票数 2

该错误是由于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来完成)。
Adam Jagosz 提问于2022-07-13
Peter Mortensen 修改于2022-09-04
这应该是在顶部,相关的问题见,github.com/npm/cli/issues/5228phil_lgr 2022-08-18
#14楼
得票数 2

我刚刚遇到了同样的问题。之前的一个答案提出了与我相同的解决方案,但有点不清楚:我正在运行。

节点 16.16.0

尼泊尔政府的8.15.0版本

我在两个脚本中用 "prefix --location=global "替换了:"prefix -g"。这将解决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)上进行了测试。

我使用的是以下贝壳。

  • 重击
  • 壳牌石油公司(PowerShell)
  • 命令
  • Ubunto (WSL) 希望这能把事情弄清楚!
BJ Rutledge 提问于2022-07-23
BJ Rutledge 修改于2022-09-05
大概是在Windows上吧?并且使用CMD,而不是PowerShell?这是在什么版本的Windows上测试的?Windows 10 Home?什么外壳?请通过编辑(修改)你的答案来回答,而不是在这里的评论中(******************* without ************** "Edit:", "Update:", 或类似的内容--答案应该显示为今天写的一样)。Peter Mortensen 2022-09-04
"答案18"并不可靠。根据不同的视图,顺序会随着投票的变化而变化。而且肯定是在不同的视图中(例如,按最早的排序)。也许可以直接链接到它(使用该答案的"分享"链接)?Peter Mortensen 2022-09-04
你是正确的,彼得-莫坦森!对此我很抱歉。我更新了答案,以便更清楚地说明问题BJ Rutledge 2022-09-05
#15楼
得票数 2

根据Majbah Habib的回答

适用于Windows。

  1. 转到。

    Enter image description here

  2. 所有四个文件中替换。-g -> --location = global@

    Enter image description here

    Enter image description here

lennoxGER 提问于2022-08-02
lennoxGER 修改于2022-09-06
应该是在Windows上吧?这是在什么版本和版本上测试的?Windows 10 Home?请通过编辑(改变)你的答案来回答,而不是在这里的评论中(******************* ************** "编辑:", "更新:", 或类似的内容 - 答案应该显示为今天写的)。Peter Mortensen 2022-09-04
#16楼
得票数 1

只要使用这个代码就可以了。

npm install --force
Mehdi Yaghoubi 提问于2022-07-17
Peter Mortensen 修改于2022-09-04
我还是无法解决这个问题,我试着用npm install --force yarn,但这也没有用。harshikerfuffle 2022-07-26
更新你的nodejs和npmMehdi Yaghoubi 2022-07-26
#17楼
得票数 1

编辑本段。

我在安装8.12.1版的npm时,也得到了类似的错误。

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

通过在终端使用这段代码,将你当前的npm版本更新为最新的版本。

npm i -g npm@latest

它首先会显示同样的错误信息,大概有两行。然后继续安装和更新;当你运行npm -v时,更新后的npm版本将不会显示错误信息。

Samson Royal 提问于2022-07-05
Samson Royal 修改于2022-09-06
关于 "cmd":应用Windows?而且不使用PowerShell?这是在什么版本和版本的Windows上测试的?Windows 10 Home?请通过编辑(改变)你的答案来回答,而不是在这里的评论中(******************* without ************** "Edit:", "Update:", 或类似的内容--答案应该显示为今天写的一样)。Peter Mortensen 2022-09-04
#18楼
得票数 0

如果你以管理员身份登录,可以用Visual Studio Code打开并编辑npm.cmd文件,这很容易做到。

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

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

将前缀-g改成前缀-location=global

当你完成并试图关闭该文件时,Visual Studio Code将在右下角弹出一个信息。

保存'npm.cmd'失败。权限不足。选择 "以管理员身份重试",以管理员身份重试。

点击'以管理员身份重试'。npm.cmd文件将被保存,启动时不再出现警告。

Terry C 提问于2022-06-09
Peter Mortensen 修改于2022-06-26
#19楼
得票数 0

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

请按照以下步骤操作。

  • 在项目文件夹上点击右键
  • 点击属性
  • 取消勾选只读复选框。
  • 点击Apply
  • 然后再试一下npm的命令

Enter image description here

Ganesh Gadekar 提问于2022-08-19
Peter Mortensen 修改于2022-09-04
在Windows上,估计是这样?Peter Mortensen 2022-09-04
#20楼
得票数 0

我在Windows上被这个问题困住了,并尝试了所有提到的方法,但都没有奏效。

这基本上是由于反病毒软件的问题。它认为npm是恶意软件,并阻止了它。所以,我把npm排除在屏蔽范围之外,它就成功了。

Ritik Banger 提问于2022-07-02
Peter Mortensen 修改于2022-09-04
你是如何让npm不被封杀的?harshikerfuffle 2022-07-26
重新安装npm,你会收到杀毒软件的通知,说npm被封锁了,点击这里可以解除封锁。点击这一点,它就会解除封锁。Ritik Banger 2022-07-26
什么防病毒软件?Windows Defender?Peter Mortensen 2022-09-04
也许是辩护人或任何第三方应用程序。Ritik Banger 2022-09-05
#21楼
得票数 0

不幸的是,我不能在这里评论或加注,但Md Rehan是对的。安装最新的npm版本即可。

npm i -g npm@latest

npm在版本> 8.13(我相信)中已经修复了这个问题,在写作的时候,它甚至是8.19.2。

KimG 提问于2022-10-09
你知道你没有的评论特权,以至于你甚至可以把它写成文字。你知道规则meta.stackexchange.com/questions/214173/…。在这种情况下,请不要决定滥用不同的机制(答案)来做它不应该做的事情,而且你还不被允许做。Yunnosch 2022-10-15
#22楼
得票数 -1

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

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

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

然后,你的错误就解决了。

Vaishnavi S. Chatur 提问于2022-06-06
Peter Mortensen 修改于2022-06-26
在Windows上,大概是这样吧?为什么使用不同的驱动器会有任何区别?Peter Mortensen 2022-06-26
标签