NPM错误解析JSON,意外的标记。

7
我正在尝试安装grunt,但是没有成功。
npm install -g grunt-cli --registry http://registry.npmjs.org/

会出现以下错误:

npm ERR! registry error parsing json
npm ERR! Darwin 14.3.0
npm ERR! argv "node" "/usr/local/bin/npm" "install" "-g" "grunt-cli" "--registry" "http://registry.npmjs.org/"
npm ERR! node v0.12.4
npm ERR! npm  v2.10.1
npm ERR! Unexpected token <
npm ERR! <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
npm ERR! <html><head>
npm ERR! <title>404 Not Found</title>
npm ERR! </head><body>
npm ERR! <h1>Not Found</h1>
npm ERR! <p>The requested URL /grunt-cli was not found on this server.</p>
npm ERR! </body></html>

有什么问题吗?

你为什么要指定注册表呢?你试过直接运行 npm install -g grunt-cli 吗?从错误信息来看,它好像在服务器上找不到 grunt-cli - Brennan
@Brennan 我确实尝试过了。它给了我这个错误“错误:连接被拒绝”。 - Jaeeun lee
1
很奇怪,我刚刚做了一遍,对我来说是有效的。你有 .npmrc 或其他会更改默认注册表的东西吗?你也可以尝试使用 --registry https://registry.npmjs.org/(注意 https)。 - Brennan
@Brennan,很抱歉,我不确定 .npmrc 是什么。这可能是问题所在吗?我尝试使用 https,但出现了以下错误:“无法建立隧道套接字,原因=连接 ECONNREFUSED”,“在大多数情况下,您可能在代理后面或者网络设置有误。” - Jaeeun lee
.npmrc是一个文件,您可以在其中设置npm工具使用的默认值。看起来这不是问题所在。正如该消息所暗示的那样,您是否受到防火墙或代理的限制? - Brennan
2个回答

29

我刚刚运行了以下命令,

首先:

$ rm -f package-lock.json

然后:

$ npm i

对我有用 ;)


1
是的,只需刪除 package-lock.json 文件,一切又恢復正常了。 - Adam Harte

22

3
@TylerChong rm -f package-lock.json && npm install -> @TylerChong rm -f package-lock.json && npm install - Rafael

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