问题描述与处理策略
1、问题描述
npm error code FETCH_ERROR
npm error errno FETCH_ERROR
npm error invalid json response body at http://registry.npmmirror.com/escape-html reason: Unexpected token < in JSON at position 0
-
NPM 在获取数据时遇到了
FETCH_ERROR
,即获取错误,无法从指定的源获取数据 -
具体错误是
Unexpected token < in JSON at position 0
,在 JSON 解析的起始位置遇到了一个意外的字符<
,表示源返回了一个 HTML 页面(可能是错误页面)而不是预期的数据
2、处理策略
- 更换 NPM 镜像,由
http://registry.npmmirror.com/
换成https://registry.npmmirror.com/
npm config set registry=https://registry.npmmirror.com/
补充学习
1、查看与设置 NPM 镜像
- 查看 NPM 镜像
npm config get registry
- 设置 NPM 镜像
npm config set registry=https://registry.npmmirror.com/
2、unexpected token 复现
- 模拟一个场景,其中 JSON 解析器期望得到 JSON 格式的数据,但实际上却收到了包含非法 JSON 字符
const data = "<html><body><h1>Not Found</h1></body></html>";
const jsonData = JSON.parse(data);
console.log(jsonData);
- 输出结果
<html><body><h1>Not Found</h1></body></html>
^
SyntaxError: Unexpected token < in JSON at position 0