【问题标题】:Message "npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead"npm WARN config global `--global`, `--local` 已弃用。改用 `--location=global`
【发布时间】:2022-06-12 21:43:14
【问题描述】:

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

【问题讨论】:

  • 你的node和npm版本是多少?
  • 节点版本:16.15.0 npm:8.11.0
  • 该命令实际上给了你想要的结果。此外,警告将 -g 用于已弃用的全局上下文。代替 -g ,尝试使用 --location=global。
  • 请写完整的命令@Rajani B
  • 是否有帖子说明为什么会更改?写-g--location=global 更容易记住和输入。

标签: node.js reactjs npm


【解决方案1】:

这是 Windows 上的一个问题,其中 npm 是通过节点安装文件夹中的 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%" %*

我提交了一个问题:https://github.com/npm/cli/issues/4980

编辑:此警告已在 npm 8.12.1 中得到修复。 -g 不再被弃用。

【讨论】:

  • 我用npm install -g npm@latest 更新到npm 8.12.1,但我仍然得到npm WARN config global --global, --local` 已被弃用。请改用--location=global。`
  • @Huy 你更新到npm 8.12.1,当你更新到npm -v,你不再收到这个警告了吗?
  • 在 Windows 上升级 npm 不适用于 npm 本身,就像在 Linux 上一样。您必须使用 npm-windows-upgrade 在正确的位置更新包装脚本 npm.cmd。 npmjs.com/package/npm-windows-upgrade
  • @DinaM。是的,我再也看不到那个警告了。只是用npm -g update 更新了 npm,不确定这是否会有所帮助。
  • @Huy 感谢您的回复。我已经这样做了几次,但是当我这样做npm -v时,我仍然得到npm WARN config global --global, --local are deprecated. Use --location=global instead. 8.12.1
【解决方案2】:

步骤一:进入\nodejs文件夹,打开两个文件npm.cmdnpm

步骤 2:将 prefix -g 替换为 prefix --location=global 以获取行号。 npm.cmd 文件的第 12 行和第 12 行。 npm 文件中的 23 个

【讨论】:

  • 尝试了这些步骤。但仍然得到 npm WARN config global --global, --local 已弃用。请改用--location=global。 npm 错误!运行任何 npm/npx 命令时出现意外的令牌“。”错误
  • 编辑npm 文件对我来说是个窍门。当我刚刚编辑npm.cmd 时,什么也没发生。我在 Windows 上使用 git bash。竖起大拇指
【解决方案3】:

问题在 8.12.1 上仍然存在

npm -v

npm WARN 配置全局 --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

【讨论】:

    【解决方案4】:

    我为解决这个问题而遵循的解决方案——

    1. 转到 C:\Program Files\nodejs
    2. 您必须编辑 4 个名为 npmnpm.cmdnpxnpx.cmd 的文件
    3. 在 vs 代码中打开文件
    4. 将所有四个文件中的 prefix -g 替换为 prefix --location=global
    5. 全部保存(如果要求保存为管理员)
    6. 一切顺利!

    【讨论】:

      【解决方案5】:

      你得到的不是错误。这是一个警告,表示您的命令仍然有效,但将来可能不会。

      试试这个:

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

      顺便说一句,您可以使用 create-react-app 而不将其安装为全局依赖项。像这样:

      npx create-react-app your-project-name
      

      【讨论】:

        【解决方案6】:

        npm install -g npm-windows-upgrade

        npm-windows-升级

        选择最新版本

        【讨论】:

        • 不错,简单的答案。谢谢!
        【解决方案7】:

        npm install --legacy-peer-deps

        似乎为我解决了这个问题。运行新安装的 Windows 11 并安装

        【讨论】:

          【解决方案8】:

          我已经尝试了几件事,但每次使用npm时仍然得到这个:

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

          【讨论】:

          • 看来您使用的是非英语语言。我会鼓励你使用每个人都能理解的英语。
          • 我已将这篇文章编辑为英文。如果不正确,请编辑,如果无法理解,请回滚到原始编辑。使用谷歌翻译进行翻译。
          • 对我来说也一样。即使使用 --location=global 也会引发此错误。
          【解决方案9】:

          npm WARN 配置全局 --global--local 已弃用。请改用--location=global。需要安装以下包: -- 我遇到了上述错误,所以我只做了这些步骤

          1. 不要在安装节点 js 的同一驱动器上创建文件夹以写入命令 npx create-react-app 项目名称 2)如果你在c盘安装node js,然后尝试在另一个驱动器上制作文件夹以进行练习 3)所以我在 d 驱动器上创建文件夹,因为我在 E 驱动器中安装节点 js 4)打开命令提示符并在文件夹上,然后写入命令 npx create-react-folder my-app

          那么你的错误就解决了

          【讨论】:

          • OP 没有指定他的操作系统,您的答案部分是特定于平台的。如果可以的话,请给出一个与平台无关的通用问题。另外,请多注意正确的语法。例如,你的最后一句话应该是这样的:“那么,你的错误就解决了”——句子以大写字母开头,并注意solved末尾的d。 ...您的编号格式不正确 1) .. 4) .... 请注意此类问题。
          【解决方案10】:

          npm.cmd 文件以及 npx 中的 prefix -g 更改为 prefix --location=global。 cmd文件

          【讨论】:

            【解决方案11】:

            如果您以管理员身份登录,则可以轻松使用 VS Code 打开和编辑 npm.cmd 文件。 右键单击 npm.cmd 文件并选择使用代码打开。

            文件将在 VS Code 中打开。 更改前缀 -g 前缀 --location=global

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

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

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

            【讨论】:

              【解决方案12】:

              windows 用户(感谢@Lars)use this lib:

              以管理员身份打开powershell并运行:

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

              【讨论】:

                【解决方案13】:

                这个命令对我有用npm install --local=global create-react-app

                【讨论】:

                • --local=global 毫无意义,不是吗?那只是意味着您根本没有在全球范围内安装它^^
                • 是的!它是在本地安装的。我已使用上述命令“npm install --location=global create-react-app” 重新安装了它
                • 这不是上面的命令。你放了local 而不是location
                猜你喜欢
                • 2022-06-16
                • 2022-08-04
                • 2022-06-14
                • 2022-06-13
                • 2022-06-15
                • 2022-08-15
                • 2022-10-30
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多