无法安装任何 NPM 包,错误 4058

Posted

技术标签:

【中文标题】无法安装任何 NPM 包,错误 4058【英文标题】:Can't install any NPM package, error 4058 【发布时间】:2018-09-12 05:33:06 【问题描述】:

我正在尝试在我的项目中安装 Grunt。它曾经完美地工作,但现在由于某种原因,它没有。每次我尝试安装 Grunt 时,都会收到此错误:

npm ERR! path C:\irrelevent\path\project\node_modules\ansi-styles
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall rename
npm ERR! enoent ENOENT: no such file or directory, rename 'C:\irrelevent\path\project\node_modules\ansi-styles' -> 'C:\irrelevent\path\project\.ansi-styles.DELETE'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Me\AppData\Roaming\npm-cache\_logs\2018-04-03T00_52_10_105Z-debug.log

奇怪的是丢失的包每次都会改变。 我尝试验证缓存,删除node_modules 文件夹,使用--force 清理缓存。卸载 NPM 和 NodeJS,重启我的电脑。没有机会。 出于安全原因,我不得不格式化我的电脑,我拿了项目文件夹而不是 Roaming 文件夹,我不知道这是否有影响,但自从我重新安装了 NPM 后应该不会。

我不确定这是否会有所帮助,但这是我的package.json


 "name": "project",
 "version": "2.1.0",
 "repository": "project-2.0",
 "devDependencies": 
   "grunt": "^1.0.2",
   "grunt-cli": "^1.2.0",
   "grunt-contrib-concat": "~1.0.1",
   "grunt-contrib-copy": "^1.0.0",
   "grunt-contrib-cssmin": "~2.0.0",
   "grunt-contrib-jshint": "~1.1.0",
   "grunt-contrib-uglify": "~2.2.0",
   "grunt-contrib-watch": "~1.0.0",
   "grunt-html-build": "^0.7.1",
   "grunt-real-favicon": "^0.2.2"
 ,
 "dependencies": 
   "angular-bootstrap-colorpicker": "^3.0.31",
   "angularjs-geolocation": "^0.1.3",
   "sprintf-js": "^1.1.1"
 

【问题讨论】:

【参考方案1】:

试试这些步骤:

删除 package-lock.json 并再次运行 NPM。 确保没有其他 node.js 进程正在运行(检查任务管理器) 如果您使用的是 Visual Studio 代码,请将其关闭并再次尝试运行 npm install。 如果一切都失败了,请重新启动计算机。

在此处查看主题:https://github.com/npm/npm/issues/17444

【讨论】:

不幸的是,这不起作用。我尝试删除 package-lock.json(没有),没有运行 Node.Js 进程。我关闭了 phpstorm(我不使用 VSCode)并且仍然有错误。我什至尝试卸载 NodeJS 并删除 Roaming 中的文件夹。 原来是 Malwarebytes 错误。感谢您为我指出正确的线程。【参考方案2】:

对我来说,原因是 Dropbox(我的 NodeJS 项目位于 Dropbox 文件夹的深处)。我暂停了同步,再次尝试npm install,它安装没有错误。然后我当然恢复了同步。

【讨论】:

【参考方案3】:

您不应该忘记通过cd "nameofproject" 转到项目文件夹,然后"npm start" 就可以了。

【讨论】:

【参考方案4】: 删除 package-lock.josn 和 node_modules npm cache clear --force 清除 npm 缓存 重启 VS 代码 再次运行npm install

【讨论】:

【参考方案5】:

试试这个:

    检查您是否创建了具有相同文件夹名称的内部文件夹。

    如果存在 2 个同名文件夹(删除第一个文件夹)

    转到终端:npm start

【讨论】:

【参考方案6】:

为 VS-Code 解决这个错误:

    关闭 VS 代码 执行npm cache clear --force 重启 VS-Code。

【讨论】:

【参考方案7】:

我遇到了同样的问题,我的问题是在更改目录(cd 前端)的帮助下解决的,因为我的项目结构是 js>frontend>src>index.html

在运行 npm start 之前,请确保您位于正确的目录中。

解决方案

    cd frontend(你的目录名) npm 开始

我安装了(npm install -D live-server)并且 在 package.json 中,我将“start”命令设置为 "start":"live-server src--verbose"

【讨论】:

【参考方案8】:

我尝试了很多东西,比如安装不同的版本,清除缓存,编辑环境变量但没有任何效果,然后我没有安装 nodejs,我只是提取 nodejs 的文件,它适用于我的情况。

【讨论】:

这并不能真正回答问题。如果您有其他问题,可以点击 进行提问。要在此问题有新答案时收到通知,您可以follow this question。一旦你有足够的reputation,你也可以add a bounty 来引起对这个问题的更多关注。 - From Review

以上是关于无法安装任何 NPM 包,错误 4058的主要内容,如果未能解决你的问题,请参考以下文章

npm 包无法安装“npm ERR!错误:EACCES:权限被拒绝”

npm 无法安装全局包?

安装dva出现errno -4058

NodeJS - NPM 无法安装 nodemon 包

linux (wsl) npm 无法安装包

我不断从 npm 收到 `errno 4058`