npm - material-design-icons的tarball数据似乎已损坏

34

我在运行 npm install material-design-icons@3.0.1 时遇到了这个错误:

tarball data for material-design-icons@3.0.1 (sha1-mnHEh0chjrylHlGmbaaCA4zct78=) seems to be corrupted
npm ERR! path D:\speech-analytics\node_modules\.staging\material-design-icons-7d5a1f73\action\drawable-xxhdpi\ic_assignment_ind_white_48dp.png
npm ERR! code EPERM
npm ERR! errno -4048
npm ERR! syscall unlink
npm ERR! Error: EPERM: operation not permitted, unlink 'D:\\speech-analytics\node_modules\.staging\material-design-icons-7d5a1f73\action\drawable-xxhdpi\ic_assignment_ind_white_48dp.png'
npm ERR!  { Error: EPERM: operation not permitted, unlink 'D:\\speech-analytics\node_modules\.staging\material-design-icons-7d5a1f73\action\drawable-xxhdpi\ic_assignment_ind_white_48dp.png'

这里记录为一个错误,但仍然没有答案或修复。

我尝试重新安装node,升级到最新的npm版本(当前运行6.4.1),做了cache clean --force,尝试了npm install --no-optional,删除了package-lock.json,从AppData目录中删除了npmnpm-cache文件夹,以管理员身份运行所有内容,但仍然没有成功。

我甚至尝试使用material-design-icons@3.0.0,但错误仍然存在。

如果我导航到日志中出现的文件夹(node_modules\.staging\material-design-icons-7d5a1f73\action\drawable-xxhdpi),它是空的,并且是整个node_modules目录中唯一存在的文件夹。我可以毫无问题地删除该目录,因此看起来不是权限/锁定问题。

有什么建议吗?

10个回答

46

最终,我通过以下方法解决了问题:

  • 删除 node_modules 文件夹
  • 运行 npm update
  • 运行 npm install

据我所知,npm update 应该会更新 package.json 文件,但是所有依赖项的版本都保持与之前相同。


6
我遇到了和你完全相同的问题,在一个新机器上也出现了相同的症状。对我来说,运行 cache clean --force 就解决了问题。感谢您的发帖! - erin

13

我用以下命令解决了这个问题:npm cache verify,它的输出结果是:

Cache verified and compressed (C:\Programs\DCPS\npm-cache\_cacache):
Content verified: 1344 (164824963 bytes)
Content garbage-collected: 1 (3491551 bytes)
Index entries: 1522
Finished in 8.187s

对我来说,最引人注目的是:Content garbage-collected: 1 (3491551 bytes)

这种情况是否发生是因为发布了一个新版本的npmjs包而没有进行版本提升吗?


谢谢你提供这个,本来我可能要浪费不少时间。 - Joseph King

9
无需运行 npm update(我不想更新任何软件包)或删除整个 node_modules 文件夹。我通过以下步骤解决了这个问题:
1. 删除 package-lock.json 文件 2. 删除 node_modules\material-design-icons-xxxxxxx 文件夹 3. 再次运行 npm install 命令

2
删除 package-lock.json 对我来说是解决方案。 - Aaron Scherbing

4
如果npm update不是解决方案,并且删除package-lock.json可能会带来自己的问题,那么我可以通过以下简单步骤解决它:
  • 删除node_modules/文件夹
  • package-lock.json中,删除引用受损软件包的部分
  • 再次运行npm install

2
我正在使用一个私有注册表中的库,由于它仍处于开发阶段,我更改了代码但没有更新版本,导致我的 package-lock.json 文件具有错误的 integrity 属性。删除相应部分解决了这个问题,听起来比删除整个文件更好的做法。 - Carrm

1

如果您在Windows环境下,可以通过以管理员身份运行cmd来解决该问题。


1

没有一个答案解决了我的问题,因为在我的情况下是git的问题。也许有人会遇到同样的问题。

我的项目中有一些来自git的依赖项,但我的终端上的git无法工作。所以修复git的路径就解决了问题!


0

在使用私有包时,我在Bitbucket Pipeline中遇到了这个问题。

我错过了在pipeline中安装git:

script:
  - apk update && apk upgrade && apk add --no-cache bash git openssh # <- THIS
  - npm ci --prefer-offline
 

依赖项已经

"some-private-package": "git+ssh://git@bitbucket.org/workspace/some-private-package#v1.0.12",`

0

如果您使用的是Windows环境,我通过以管理员身份运行cmd来解决了这个问题。

  • 这对我有用。但是,chromedriver没有安装。因此,我使用命令“npm install chromedriver”单独安装了它。

0

您需要确认是否已安装Typescript,安装后它对我起作用了。

运行下面的命令将显示Typescript版本。

tsc -v

如果出现错误,请安装 TypeScript。
npm install -g typescript

如果已安装TypeScript,则可以尝试检查Angular Cli版本。
ng --version

如果显示错误,则安装Angular Cli 参考:https://cli.angular.io/
npm install -g @angular/cli

-2

我尝试了很多次都无法解决这个问题,所以我下载了GitHub的ZIP文件,解压并安装后问题得到了解决!

download material-design-icons from github
unzip to the directory of your project (or c:\tmp) 
npm install  ./material-design-icons

或者

npm install  c:/tmp/material-design-icons

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