npm安装时出现SyntaxError: Unexpected token C错误

3
我最近更改了npm配置,但现在我尝试安装各种程序包时都会持续收到相同的错误信息。由于我认为是个人设置错误造成的,现在我无法使用npm。
我卸载了node和npm并重新安装了,尝试了npm博客中的配置设置,但仍然遇到了相同的错误。也许这与Cellar目录中的权限有关?我认为我之前已经处理好了...
对我来说还不清楚问题所在,非常感谢您的帮助。
以下是错误输出:
npm ERR! registry error parsing json npm ERR! SyntaxError: Unexpected token C npm ERR! Cannot GET http://registry.npmjs.org/node-simple-router npm ERR! at Object.parse (native) npm ERR! at RegClient. (/usr/local/Cellar/node/0.10.26/lib/node_modules/npm/node_modules/npm-registry-client/lib/request.js:203:23) npm ERR! at Request.self.callback (/usr/local/Cellar/node/0.10.26/lib/node_modules/npm/node_modules/request/request.js:123:22) npm ERR! at Request.EventEmitter.emit (events.js:98:17) npm ERR! at Request. (/usr/local/Cellar/node/0.10.26/lib/node_modules/npm/node_modules/request/request.js:893:14) npm ERR! at Request.EventEmitter.emit (events.js:117:20) npm ERR! at IncomingMessage. (/usr/local/Cellar/node/0.10.26/lib/node_modules/npm/node_modules/request/request.js:844:12) npm ERR! at IncomingMessage.EventEmitter.emit (events.js:117:20) npm ERR! at _stream_readable.js:920:16 npm ERR! at process._tickCallback (node.js:415:13) npm ERR! 如果您需要帮助,可以将此*整个*日志,包括npm和node版本,报告给:
输入 npm config list 的输出为: $ npm config list ; cli configs registry = "http://registry.npmjs.org/"
; userconfig /Users/rfatahi/.npmrc ca = "" https-proxy = "http://127.0.0.1:8888/" proxy = "http://127.0.0.1:8888/" registry = "http://registry.npmjs.org/" strict-ssl = true ; builtin config undefined prefix = "/usr/local"
; node bin location = /usr/local/Cellar/node/0.10.26/bin/node
1个回答

3
如果您打开文件/usr/local/Cellar/node/0.10.26/lib/node_modules/npm/node_modules/npm-registry-client/lib/request.js,并在第202行(JSON.parse之前)插入console.log(data),就可以看到您遇到的错误是什么。
您也可以使用npm config list获取npm配置并发布它,或只需删除您的npmrc文件。但我不确定这是否是配置问题。
此外,奇怪的是您正在通过HTTP进行请求,因为默认URL是HTTPS。也许某些防火墙搞砸了事情(?)。

1
是的,我正在尝试使用隧道和代理,然后收到了这样的反馈。感谢您的反馈,我现在将仔细阅读您提供的大纲。 - aug2uag
1
控制台日志现在包括“无法获取http://registry.npmjs.org/http”,并已编辑以在上述请求中包含npm配置列表。看起来肯定是防火墙问题,可能来自nginx。 - aug2uag
2
ن½ çڑ„هں؛ن؛ژExpressçڑ„ن»£çگ†è؟”ه›‍ن؛†Cannot GET http://registry.npmjs.org/httpم€‚ه¦‚و‍œè؟™ن¸چوک¯وœ‰و„ڈن¸؛ن¹‹ï¼Œن½ هڈ¯ن»¥è؟گè،Œnpm config set proxy nullو‌¥ه…³é—­ه®ƒم€‚ - alex
1
我在本地看到了相同的错误。它是由于向我们内部npm服务器发出的http请求返回404响应数据引起的。响应数据为“Cannot GET /-/all”,指的是请求npm搜索时的标准JSON URL。我很惊讶npm错误处理没有更好地处理404结果,它只在尝试将结果解析为JSON之前最初检查结果是否不是304。'Unexpected token C'指的是http响应中的第一个字符'Cannot'。npm config set proxy null并没有解决这个问题。 - Bob Fields

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接