Node.js16.15.1的一个报错及解决方案

Node.js16.15.1的一个报错及解决方案

前言

最近在进行Node.js的下载安装和环境的配置,在官网上下载了LTS版本16.15.1,没想到在后续的使用中出现一种报错。

例如,在命令提示符窗口中输入npm -v 想要查看npm的版本号:

在这里插入图片描述

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

关于这个报错,我一开始的解决方案是将Node.js安装目录下的npm.cmd文件第12行的prefix -g 改成prefix --location=global,之后再在命令提示框中输入npm -v确实不报错了,我就以为解决了,没想到有小伙伴反映git bash中运行仍会报错,我在命令提示符窗口测试的时候输入npm install express -g 发现确实问题没有完全解决。(如果你按之前的方案把npm.cmd文件改了,建议还是先改回来吧······)

在查找解决方案的时候,我发现最新版本的npm已经发布了一个补丁来删除这条弃用警告(详情见https://github.com/npm/statusboard/issues/518),也就是说在你所安装的 node 版本和最新版 npm 兼容的前提下我们升级到最新版的npm就可以解决问题了。于是我兴冲冲地踩了又一个坑,就是直接在命令提示框输入npm install -g npm 。但其实,在 Windows 上升级 npm 需要手动步骤以确保 PowerShell/CMD 找到新版本的 npm 。(感谢这个帖子的一个评论帮助我定位了问题:https://stackoverflow.com/questions/72401421/npm-warn-config-global-global-local-are-deprecated-use-location-glo/72477810#72477810

准备工作

开始之前有三个问题要注意:
一是必须先完成环境变量的配置,否则后面会出现类似这种报错:

npm-windows-upgrade : 无法将“npm-windows-upgrade”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
所在位置 行:1 字符: 1
+ npm-windows-upgrade
+ ~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : ObjectNotFound: (npm-windows-upgrade:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

二是可能你的node.js安装文件夹存在权限问题,后续可能出现类似这种报错:

Error: EPERM: operation not permitted, open 'D:\Program Files\nodejs\node_global\_logs\2022-06-11T18_14_51_227Z-debug-0.log'
npm WARN logfile could not be created: Error: EPERM: operation not permitted, open 'D:\Program Files\nodejs\node_global\_logs\2022-06-11T18_14_52_917Z-debug-0.log'

以防万一,建议还是先将权限打开(如果你的当前用户是管理员可以略过下面添加权限的步骤):

1、打开安装文件夹所在根目录,我的是在D盘,右键点击安装文件夹,点击“属性”:在这里插入图片描述

2、点击“安全”,选择编辑:
在这里插入图片描述

3、点击该用户,我嫌麻烦,就直接勾选下方的“完全控制”:
在这里插入图片描述

4、点击“应用”后点击“确定”:
在这里插入图片描述

5、再点击“确定”退出:
在这里插入图片描述
注意:这个步骤有的小伙伴会报一个错:
在这里插入图片描述
这种情况下我们直接进入文件夹按照上面的步骤改掉node_cachenode_global两个文件夹的权限改了即可(上面全改也只是为了方便)。
三是确保自己node.js的安装文件夹不含中文字符(这个在安装阶段就应该注意),否则有可能引发下面问题:
在这里插入图片描述

核心解决方案

准备工作做完后,核心解决方案如下:

首先,在桌面任务栏的搜索框内输入“cmd”,点击“以管理员身份运行”,以免后续操作权限不足导致操作失败:

在这里插入图片描述

然后,在命令提示符窗口输入npm install -g npm-windows-upgrade

在这里插入图片描述

关闭窗口后,找到Windows PoweShell,右键,点击“以管理员身份运行”:

在这里插入图片描述

接着在PowerShell中输入set-ExecutionPolicy RemoteSigned ,按下回车后会显示是否要更改执行策略的选项;我们输入Y 后按下回车;接着输入npm-windows-upgrade ;接着会显示各个版本,用方向键 加以选择,不过默认是最高的8.12.1,就直接按回车就好了。稍等片刻,就完成更新了:

在这里插入图片描述

测试

我们在命令提示框中输入npm -v,可以看到,即使没更改npm.cmd文件,也不会报错了:

在这里插入图片描述

接着我又输入了npm install express -g 进行测试,仍然不会报错。

至此,该问题已解决。

  • 51
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 64
    评论
Node.js 16.15.1 是一种基于 Chrome V8 引擎的开源 JavaScript 运行时环境。安装包中包含了 Node.js 运行环境所需的一切文件。 安装 Node.js 16.15.1 非常简单。你可以按照以下步骤进行安装: 第一步,访问 Node.js 的官方网站(网址为:https://nodejs.org)。 第二步,点击主页上的 "下载" 按钮,会跳转到下载页面。 第三步,在下载页面中,你可以选择安装包的操作系统版本。如果你的操作系统是 Windows,可以选择 "Windows Installer";如果是 macOS 或 Linux,可以选择对应的版本。 第四步,点击相应版本的下载链接,会自动下载安装包。下载完成后,双击安装包进行安装。 第五步,根据安装向导提示进行操作。一般情况下,直接点击 "下一步" 即可完成安装过程。在安装过程中,你可以选择安装路径和其他定制选项。 第六步,等待安装完成。安装完成后,你可以在命令行或终端中输入 "node -v",检查是否成功安装了 Node.js 16.15.1。如果成功安装,它将返回相应的版本号。 如果你使用的是 macOS 或 Linux 操作系统,并且希望使用 nvm(Node Version Manager)进行 Node.js 的管理和切换,可以在完成安装后,运行一些额外的命令,按照 NVM 的官方文档进行配置。 总之,Node.js 16.15.1 安装包包含了 Node.js 运行环境的必要文件,安装过程简单快捷。希望以上回答能帮助到你。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 64
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lum0s!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值