NPM安装错误:解析“…nt-webpack-plugin”:“ 0”附近时,JSON输入意外结束


206

创建新的Angular 5项目时:

节点版本:8.9.2

npm版本:5.5.1

我的命令是

npm install -g @angular/cli

错误是

npm ERR! **Unexpected end of JSON input while parsing near '...nt-webpack-plugin":"0'**
npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Aashitec\AppData\Roaming\npm-cache\_logs\2017-12-06T13_10_10_729Z-debug.log

错误日志为http://www.aashitechno.in/2017-12-06T13_10_10_729Z-debug.log


7
不带引号的“ npm cache clean --force”可能是您的问题的答案。
Bimal

3
@Bimal npm cache clean --force为我工作,谢谢!
tonix

为我工作,说希望我知道自己在做什么。我没有。
carny666

sudo npm cache clean --force sudo npm cache verify sudo npm i npm@latest -g这些命令为我工作
Zohab阿里

Answers:


537

这为我解决了:

以管理员身份打开Windows Powershell

npm cache clean --force
npm install -g @angular/cli

https://devblogs.microsoft.com/premier-developer/getting-started-with-node-js-angular-and-visual-studio-code/


9
为我工作!但需要打开终端作为以admin
塞尔吉奥S. Filho的

@McEmmy:我做你mentioned..but它仍然弹出的问题Unexpected token , in JSON at position 366360 while parsing near '... } npm ERR! } npm ERR! }, npm ERR! "webpack-log":...'
Kalanka

@Kalanka,您是否愿意分享您是否已解决此问题以及您的工作方式?
mcemmy

反复运行npm cache clean --force和npm install -g @ angular / cli @ latest解决了我的问题。运行npm缓存清理无济于事
Squapl Recipes

2
那行得通,但是当我在C:\Users\[user-name]\AppData\Roaming\npm主目录中运行它时
市场

99

解:

npm cache clean --force

然后再次尝试创建您的应用程序(在此处创建React应用程序时)或安装您要安装的内容。

create-react-app myproject

(创建react应用)[在不同操作中可能会出现相同的npm问题]

npm install -g @angular/cli@latest

(安装angular cli(或安装其他工具))

它会工作。

说明:

这是与npm相关的问题,这与缓存损坏有关。即使在较新版本的npm中,它们实现了自我修复,通常不能保证任何损坏,但似乎效率不高。 在此处输入图片说明 强制清除缓存可解决问题。

解析具有json格式的缓存文件之一时发生错误。可以在〜/ .npm / _cacache(在Linux中)和%AppData%/ npm-cache(Windows)中找到该缓存。对于我当前的npm版本,当我检查时,有三个目录。
在此处输入图片说明

如果检查第一个或第二个,结构如下 在此处输入图片说明

每个缓存文件都有一个json格式(解析后的内容) 在此处输入图片说明

这里是文档的一个很好的链接:https : //docs.npmjs.com/cli/cache

[更新]另外,如果碰巧不能解决问题,您可以在这里查看此答案https://stackoverflow.com/a/50191315/7668448它显示了如何更改npm注册表,这可能会有所帮助。检查并查看。


很好地解释了答案先生非常感谢我在想,为什么有发生,我怀疑我的文件已经因为这造成由于下载没有完成这会是真的缓存文件被损坏坏的互联网连接的损坏
查尔斯

1
是的,不确定。是的,过去这是一个问题。根据这个问题线程github.com/npm/npm/issues/4652。但是他们正在努力。现在我不确定,也许已经解决了。这完全取决于实现以及npm如何管理从获取到缓存再到安装的所有步骤。我现在没有时间通过​​npm内部。但是我正在围绕这个问题进行详细说明,并进行一些研究。我将写一篇文章,并在完成后更新答案。知道他们可能还有其他原因导致错误,然后导致缓存损坏,
Mohamed Allal '18

2
请参阅docs.npmjs.com/common-errors#invalid-json。对于注册表问题,有一种verdaccio可以尝试github.com/verdaccio/verdaccio。建议按照这些线程github.com/npm/npm/issues/21181github.com/npm/npm/issues/21112。这里是有关缓存以及缓存如何移动的线程github.com/npm/npm/issues/4652。现在是历史的另一篇文章infoworld.com/article/3198746/javascript/…。当我完成研究并撰写文章时,我会通知您。
Mohamed Allal '18

这里是一个有趣的线程:这里是一个有趣的线程github.com/yarnpkg/yarn/issues/393
Mohamed Allal

1
这个问题困扰了我好一阵子,并以一致的错误返回。感谢这篇文章,我删除了两个文件夹,现在一切正常。谢谢
Jim Yu

29

如果

npm cache clean --force

不起作用。尝试

npm cache clean --force
npm update

1
该答案应获得更多投票。更新是重要的一步,我也浪费了将近3个小时,因为我找不到这个答案
Vaibhav Gautam

1
截至2020年5月,这是唯一能够真正有效地解决工作流错误的解决方案
Akhil

1
毫无疑问,这确实是一个完美的答案。唯一的解决方案为我工作。
Noddy先生

1
我也+1了,它工作得很好,而且确实是唯一的解决方案,在失去了尝试修复所有其他内容的
几天后才起作用

截至2020年6月,它对我
有用。

14

Npm使用缓存为您下载新软件包。您需要清除npm缓存。使用以下命令进行清理:

npm cache clean --force

然后通常使用您的npm install命令,例如

npm install -g @angular/cli

10

删除C:\ Users \ admin \ AppData \ Roaming \(Windows)中的npm和npm-cache文件夹,然后执行cmd

npm缓存清除--force

npm缓存验证

将npm更新到最新版本

npm我-g npm

然后创建您的项目1)Angular

npm我-g @ angular / cli @ latest

ng新的HelloWorld

2)反应

npm i -g创建反应应用

create-react-app react-app


9

我用解决

npm cache clean --force

然后更新npm

npm i npm@latest -g

然后通常使用您的npm install命令

npm install 

6

我使用Windows并删除了下面列出的所有文件,而我的问题已解决C:\ Users {{您的用户名}} \ AppData \ Roaming \ npm-cache




5

npm cache clean --force 为我工作

解决的错误:

$ npm install -g gulp npm WARN不推荐使用gulp-util@3.0.8:不推荐使用gulp-util-按照https://medium.com/gulpjs/gulp-util-ca3b1f9f9ac5 npm ERR中的指导进行替换!解析'... / RGs88STtAtiMP3tCiNdU'附近时,JSON输入意外结束

npm ERR!可以在以下位置找到此运行的完整日志:npm ERR!C:\ Users \ admin \ AppData \ Roaming \ npm-cache_logs \ 2018-11-20T07_38_56_733Z-debug.log


3

此命令解决了我的问题:

npm cache clean --force

另外,您还应确保使用的节点版本正确。

使用nvm管理节点版本:

nvm list; # check your local versions;
nvm install 10.10.0; # install a new remote version;
nvm alias default 10.10.0; # set the 10.10.0 as the default node version, but you have to restart the terminal to make it take effect;

3

npm cache clean --force

对于Windows:转到C:\Users\username\AppData\Roaming\npm-cache
删除所有文件并运行

npm install && npm start


2

这是您的npm错误...。

因此,取消安装节点并重新安装。

有用....

PS:再次安装节点后,请全局安装angular cli。

npm install -g @angular/cli@latest

2

我用这支班轮解决了我的问题

npm cache clean --force

它始终像魅力一样运作。我爱一个班轮。注意:由于它是全新安装,因此我不担心清空npm缓存。


2

错误:npm错误!在'... ore-js“:” 3.0.0-beta.1“附近解析时,JSON输入意外结束

全局安装expo CLI时会发生这种情况,这对我有用!

npm cache clean --force

2

file already exists --force to overwrite运行以下代码后出现错误():

npm cache clean --force
npm install -g @angular/cli

我用解决了

npm i -g --force npm

确保运行第一个命令来刷新npm的缓存。


1

我用解决

首先删除package-lock.json

npm cache clean --force

然后更新npm

npm i npm@latest -g

然后使用npm install命令

npm install 


0

您可以设置一个临时文件夹来代替清除缓存:

npm install --cache /tmp/empty-cache

要么

npm install --global --cache /tmp/empty-cache

从npm @ 5开始,npm缓存会因损坏问题而自我修复,并且保证从缓存中提取的数据是有效的。如果要确保所有内容都一致,请npm cache verify改用。另一方面,如果您要调试安装程序中的问题,则可以使用npm install --cache /tmp/empty-cache临时缓存来代替实际的缓存。


0

对我来说,我不得不再次克隆我的分支并做npm install


0

我遇到了这个问题,我尝试了所有关于Stackoverflow的答案,但对我不起作用,最后我找到了解决此问题的方法:

  • 首先,您必须卸载nodejs并删除所有与他相关的文件
  • 转到“注册编辑器”并搜索所有“ nodejs”,“ node.js”并删除它们
  • 重启你的电脑
  • 并重新安装nodejs,然后安装angular。

对我有用


0

如果仍npm cache clean --force不能解决问题,请尝试删除~/.npm目录(* nix / macOS)。这是节点存储其缓存,锁,日志,全局软件包(除非您使用nvm)和通过以下模块安装的模块的目录npx

首先,备份您的当前~./npm目录:

mv ~/.npm ~/.npm-backup

现在,尝试再次运行npm命令。这将创建一个新~/.npm目录。如果问题已解决,则可以安全地删除备份。在执行此操作之前,您可能需要检查安装在~/.npm-backup目录中的全局软件包,以便可以使用进行重新安装npm i -g [package]

rm -rf ~/.npm-backup

如果问题未解决,则可以还原备份:

rm -rf ~/.npm
mv ~/.npm-backup ~/.npm

rm伙计们,请小心那些命令!


0

这些命令对我有用

sudo npm cache clean --force

sudo npm cache verify

sudo npm i npm@latest -g

-2

在这之后 npm cache clean --force

可能是您可以挂断电话或等待进一步执行

npm使用--force警告我肯定希望您知道自己在做什么。

因此,您也可以使用这个。这解决了我的问题。

npm install --cache / tmp /空缓存

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.