运行npm update等命令出错后如何分析问题根源

我今天工作时,在当前前端项目工作目录下执行命令npm update

结果遇到如下错误:registry error parsing json

npm ERR! Unexpected token < in JSON at position 0

有些朋友遇到这个错误,就不知所措了。

本文介绍如何分析npm命令报出的这些错误。

首先根据错误消息判断出这是npm在解析一个json响应时出错,因为这个期望的json响应第一个字符为<.

那么这个json响应的请求是从哪里来的呢?

我们需要查看命令npm update的帮助文档。

执行命令行npm help npm打开本地安装完npm后的帮助文档:

如果npm update后面不指定具体的包名,则会把package.json里列出的所有依赖包更新到最新版本。

我们再看npm update错误输出的最后一行,列出了一个日志文件,包含了错误明细。

发现是请求依赖包sap/n的包描述json文件时出的错:

在npm全局安装目录下这个request.js文件很有用:

"C:\Users\i042416\AppData\Roaming\npm\node_modules\npm\node_modules\npm-registry-client\lib\request.js"

它就是npm发起http请求拿sap/n依赖包的json文件。

我们在json请求的回调函数里加上一些调试信息的打印:

现在就清楚多了,是这个依赖包sap/n的远端有问题,直接联系这个依赖包的负责人去修复。

作为临时替代方案,也可以先把这个引起问题的依赖包从package.json中删除,之后npm update正常工作.

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

原文地址:https://www.cnblogs.com/sap-jerry/p/9876399.html

时间: 2024-10-04 04:26:52

运行npm update等命令出错后如何分析问题根源的相关文章

安装nodejs 后运行 npm 命令无响应

安装和卸载过nodejs, 也编辑过 C:\Users\{账户}\下的.npmrc文件. 再全新安装nodejs ,运行npm 命令,无响应. 处理方法,删除C:\Users\{账户}\下的.npmrc文件 再运行npm 命令,正常 原文地址:https://www.cnblogs.com/piaobodewu/p/10086117.html

PowerShell中运行Bcdedit命令出错

见下图,当我尝试在PowerShell执行bcdedit删除其中一个启动项时,出现错误:而在CMD中运行时则正常. 执行的命令是: bcdedit /delete {f33a2785-b94a-11e3-a6eb-00e0661386c5} /cleanup 出错的原因: (1)PowerShell中将{}中的内容当作计算式对待: (2)CMD中将{-}整体看作字符: 事实上{f33a2785-b94a-11e3-a6eb-00e0661386c5}就是字符: 由此衍生出: (1)PowerSh

Ec2 sudo 运行 npm或node时,出现找不到命令

sudo 运行 npm或node时,出现找不到命令的情况,运行下面这些命令, sudo ln -s /usr/local/bin/node /usr/bin/node sudo ln -s /usr/local/lib/node /usr/lib/node sudo ln -s /usr/local/bin/npm /usr/bin/npm sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf 原文在这边, https://ask.fedora

sudo 运行 npm或node时,出现找不到命令

sudo 运行 npm或node时,出现找不到命令的情况,运行下面这些命令, sudo ln -s /usr/local/bin/node /usr/bin/node sudo ln -s /usr/local/lib/node /usr/lib/node sudo ln -s /usr/local/bin/npm /usr/bin/npm sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf 原文在这边, https://ask.fedora

create-react-app创建项目后,运行npm run eject报错解决方法

运行npm run eject报错解决方法 主要问题是脚手架添加.gitgnore文件,但是却没有本地仓库,使用以下命令操作以下就可以了 git init git add . git commit -m 'saveing befor ejecting' 最后 npm run eject y 就解决了! 原文地址:https://www.cnblogs.com/ZhaoWeiNotes/p/11855731.html

夺命雷公狗---node.js---2node.js中的npm的常用命令

npm install <name> 安装nodejs的依赖包 例如npm install express 就会默认安装express的最新版本,也可以通过在后面加版本号的方式安装指定版本,如npm install [email protected] npm install <name> -g   将包安装到全局环境中 但是代码中,直接通过require()的方式是没有办法调用全局安装的包的.全局的安装是供命令行使用的,就好像全局安装了vmarket后,就可以在命令行中直接运行vm

nodeJS中npm常见的命令

常用的nodeJS中npm的命令:npm主要是node包管理和发布的工具.npm常用的命令:1:npm install <name> //(下载包) 下载后的包放在当前路径下面 npm install express 下载express模块2:npm install <name> -g //-g 将包安装到全局环境中,我PC的全局环境是:C:\Users\qinbb\AppData\Roaming\npm,但是在代码中直接通过require()的方式是没有办法调用全局安装的包的3:

windows上运行npm Error: ENOENT, stat &#39;C:\Users\

安装nodeJS后,npm 自动安装到机器上. 系统版本,win7.   node -v 查看node版本信息为v0.10.33.  npm -v 查看npm版本信息,1.4.28. 但是,真正使用npm install的时候又报错,错误信息为: 上网查后,解决办法入下: 在报错的路径下建个名为  npm的文件 ,不要带后缀名. 报错路径为: C:\Users\“用户名”\AppData\Roaming\   这个路径下建个npm文件即可正常使用npm 命令了! 注意:  由于AppData 是

快速搭建yeoman+webpack+react项目和npm start启动命令失败问题

今天准备看着书写一个React小项目来着,结果发现npm start命令简直成了一只拦路虎,从昨晚报错报到了现在...今早花了一上午揪了各种错,把nodejs和npm各种重写卸载了重装还是发现不行,最后...发现我一直是在git bash上操作,重装了npm的淘宝镜像还是缺少了node_moudle里面的各种,所以,改用了cmd命令行重装了npm发现就可以了...为什么在git bash上就不行了呢??这个容我再捣鼓捣鼓先 利用yeoman快速搭建react-webpack开发环境 1.安装ye