位置: IT常识 - 正文

Node.js16.15.1的一个报错及解决方案(node js m1)

编辑:rootadmin
Node.js16.15.1的一个报错及解决方案 Node.js16.15.1的一个报错及解决方案前言准备工作核心解决方案测试前言

推荐整理分享Node.js16.15.1的一个报错及解决方案(node js m1),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node.js gui,node.js deno,node-js,node.js deno,nodejs yield,node.js javascript,nodejs yield,node-js,内容如对您有帮助,希望把文章链接给更多的朋友!

最近在进行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、点击该用户,我嫌麻烦,就直接勾选下方的“完全控制”:

Node.js16.15.1的一个报错及解决方案(node js m1)

4、点击“应用”后点击“确定”:

5、再点击“确定”退出: 注意:这个步骤有的小伙伴会报一个错: 这种情况下我们直接进入文件夹按照上面的步骤改掉node_cache和node_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 进行测试,仍然不会报错。

至此,该问题已解决。

本文链接地址:https://www.jiuchutong.com/zhishi/297712.html 转载请保留说明!

上一篇:火爆全网的ChatGPT让AI回答你的任何问题!国内免费用!!(火爆全网的头像男)

下一篇:医学图像处理的SCI期刊和顶会(医学图像处理的步骤一是设计)

  • 网站优化不为人之的几点(网站优化几乎不需要费用)

  • 苹果13promax怎么关机(苹果13promax怎么设置来电铃声)

  • 抖加币怎么退钱(抖加币怎么充值)

  • 魅族17不是2k屏的吗(魅族17屏幕支持120hz)

  • 如何扫码登录爱奇艺会员(如何扫码登录爱奇艺vip别人会员账号)

  • 微信朋友圈怎么发(微信朋友圈怎么发纯文字)

  • 网络锁卡贴机是什么意思(网络锁卡贴机是啥意思)

  • 苹果手机调静音闹钟会叫的吗(苹果手机调静音闹钟会响吗)

  • 蓝牙耳机触摸感应开关在哪(蓝牙耳机触摸感应怎么使用)

  • 拼多多是哪家公司的平台(拼多多是哪家公司的软件)

  • 华为手机怎样添加多个人脸(华为手机怎样添加门禁卡)

  • 无线路由器灯怎么算正常(无线路由器灯怎么不亮)

  • 为什么蓝牙鼠标用着没有反应了(为什么蓝牙鼠标插在电脑上怎么都没有反应)

  • 苹果有备用电量吗(苹果手机电池备用电量)

  • mate30有防水功能吗(华为mate30有没有防水)

  • 定时开关机伤手机么(定时开关机对手机电池有影响吗?)

  • 苹果手机看朋友圈如何一键到顶部(苹果手机看朋友圈视频一闪一闪的)

  • iqoo手机有什么缺点(iQOO手机有什么模式)

  • 华为出行路况怎么设置的(华为手机的路况在哪里设置)

  • mate30有保时捷款吗

  • 手机怎样退出炫彩桌面(手机上怎么退出)

  • buffalo路由器设置方法(buffalo wcr-gn路由器设置)

  • 拼多多收款码怎么开(拼多多收款码怎么申请)

  • 发圈不折叠的方法(发圈不重叠的方法)

  • 内网连接不上怎么回事(内网连接不上怎么回事路由器)

  • 删除文件需要管理员权限怎么解决?(删除文件需要管理员权限无法添加怎么办)

  • 基于PyTorch实现图像去模糊任务详细教程代码+数据(pytorch例程)

  • 如何在Android中使用OpenAI API构建一个ChatGPT类的应用程序(如何在Android中找到关闭的文件)

  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设 电脑维修 湖南楚通运网络