Atom搜索包报错:获取精选包失败及TypeError问题求助
问题描述
刚安装的Atom 1.60.0,未做任何修改操作,每次搜索包时弹出报错:
Fetching featured packages failed.Hide output…
C:\Users\yoxd1\AppData\Local\atom\app-1.60.0\resources\app\apm\lib\featured.js:60
packages = body.filter(function(pack) {
^
TypeError: body.filter is not a function
at C:\Users\yoxd1\AppData\Local\atom\app-1.60.0\resources\app\apm\lib\featured.js:60:27
at Request._callback (C:\Users\yoxd1\AppData\Local\atom\app-1.60.0\resources\app\apm\lib\request.js:57:22)
at Request.self.callback (C:\Users\yoxd1\AppData\Local\atom\app-1.60.0\resources\app\apm\node_modules\request\request.js:185:22)
at Request.emit (events.js:223:5)
at Request. (C:\Users\yoxd1\AppData\Local\atom\app-1.60.0\resources\app\apm\node_modules\request\request.js:1154:10)
at Request.emit (events.js:223:5)
at IncomingMessage. (C:\Users\yoxd1\AppData\Local\atom\app-1.60.0\resources\app\apm\node_modules\request\request.js:1076:12)
at Object.onceWrapper (events.js:312:28)
at IncomingMessage.emit (events.js:228:7)
at endReadableNT (_stream_readable.js:1185:12)
解决办法
方法1:切换国内包源(推荐)
国内访问Atom官方源易出现不稳定,导致返回内容非预期格式引发报错,可切换到国内镜像:
- 打开命令提示符(CMD),执行以下命令:
apm config set registry https://registry.npmmirror.com/ apm config set atom.io https://atom.io/api - 重启Atom后再尝试搜索包。
方法2:修改源码增加容错
若换源无效,可手动修改报错文件做兼容处理:
- 找到文件路径:
C:\Users\yoxd1\AppData\Local\atom\app-1.60.0\resources\app\apm\lib\featured.js - 打开文件定位到第60行,将原代码:
修改为:packages = body.filter(function(pack) {packages = (Array.isArray(body) ? body : []).filter(function(pack) { - 保存文件后重启Atom。
内容的提问来源于stack exchange,提问作者Emanuel

