2014-02-27 69 views
5

当我尝试使用npm安装某些东西时,它经常失败(例如,apt-get更常见),并且它将显示“请参阅日志文件以获取详细信息”或“使目录失败”。但是,当我试图检查目录时说它不会被发现。如果在安装过程中出现任何问题,NPM是否会删除刚刚下载的所有东西?为什么它会告诉我检查目录,然后是否删除它?如果安装失败,npm是否删除下载的模块?

+0

我很惊讶,一个如此广泛使用的工具,所以常常会失败。而像apt-get,yum,maven,brew等类似工具则更加稳定。可能是作曲家同样蹩脚。 – gontard

+0

问题通常是V8和Node.js API的变化,这使得软件包稍微过时了,作者不会在package.json中更新或提供正确的版本号模式匹配。 – exebook

回答

2

npm将下载的包作为压缩包保存在缓存文件夹中。

看到:https://www.npmjs.org/doc/cli/npm-cache.html

当您运行npm install和不顺心的事,它会尝试撤消和从当前位置删除软件包,但它应该独自离开缓存的压缩包。有时缓存可能会有一个糟糕的软件包tarball。

您可以强制npm安装而不使用像这样的缓存npm install --force。或者,如果您确实需要,您可以像这样清除整个缓存npm cache clean

记住:NPM安装软件包到当前文件夹,或无论您在何处的package.json可以发现