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

简介: 运行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正常工作.


相关文章
|
4月前
设置VSCode运行任务命令快捷键Alt+R,通常用于npm start(对频繁使用该命令可节省50%的输入命令行打字时间)
设置VSCode运行任务命令快捷键Alt+R,通常用于npm start(对频繁使用该命令可节省50%的输入命令行打字时间)
|
4月前
项目打包报错“caniuse-lite is outdated. Please run next command `npm update`”的解决方案
项目打包报错“caniuse-lite is outdated. Please run next command `npm update`”的解决方案
177 1
|
3月前
|
缓存 JavaScript 前端开发
npm命令介绍
npm命令介绍
|
2月前
|
缓存 JavaScript 前端开发
npm常用命令详解与实践
npm常用命令详解与实践
|
2月前
|
JavaScript
TS,编写TS文件,编写hello.ts文件,cmd下打开终端,输入tsc hello.ts会生成一个hello.js文件,简化命令,npm i -g ts-node,ts-node hello.ts
TS,编写TS文件,编写hello.ts文件,cmd下打开终端,输入tsc hello.ts会生成一个hello.js文件,简化命令,npm i -g ts-node,ts-node hello.ts
|
2月前
|
JavaScript
【解决方案】vue 项目 npm run dev 时报错:‘cross-env‘ 不是内部或外部命令,也不是可运行的程序
【解决方案】vue 项目 npm run dev 时报错:‘cross-env‘ 不是内部或外部命令,也不是可运行的程序
266 0
|
3月前
|
JavaScript
vue : 无法加载文件 D:\module\npm_module\npm_modules\vue.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.c
vue : 无法加载文件 D:\module\npm_module\npm_modules\vue.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.c
|
3月前
|
JavaScript
# 解决输入任何npm命令都报Error: Cannot find module ‘are-we-there-yet‘
# 解决输入任何npm命令都报Error: Cannot find module ‘are-we-there-yet‘
|
4月前
|
JSON JavaScript 数据安全/隐私保护
npm命令:常用npm命令及其详解!
npm命令:常用npm命令及其详解!
|
4月前
|
JavaScript Unix Shell
#! /usr/bin/env node 命令与 npm link 建立项目间软连接(一)
#! /usr/bin/env node 命令与 npm link 建立项目间软连接(一)
81 0