无法在 Windows 10 上安装 NPM 依赖项
Posted
技术标签:
【中文标题】无法在 Windows 10 上安装 NPM 依赖项【英文标题】:Can't install NPM dependencies on Windows 10 【发布时间】:2018-07-25 10:54:58 【问题描述】:不太清楚 Node.js 和 NPM 最近发生了什么变化(即最近几天),但我似乎无法找到一种方法来为在 Windows 10 上使用 Node.js 的任何项目安装 node_modules
依赖项...
我目前的设置如下:
Node.js: v9.5.0
NPM: v5.6.0
Vue.js: v2.9.3
我尝试在安装前清除缓存:npm cache clear -f
每当我尝试运行 npm i
或 npm install
时,都会看到以下错误列表:
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.3 (node_modules\fsevents):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Error: EPERM: operation not permitted, rename 'C:\xampp\htdocs\vue-scrolling-table-sample\node_modules\.staging\fsevents-a6c1bd51\node_modules\abbrev' -> 'C:\xampp\htdocs\vue-scrolling-table-sample\node_modules\.staging\abbrev-3ab84c45'
npm ERR! path C:\xampp\htdocs\vue-scrolling-table-sample\node_modules\acorn
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall rename
npm ERR! enoent ENOENT: no such file or directory, rename 'C:\xampp\htdocs\vue-scrolling-table-sample\node_modules\acorn' -> 'C:\xampp\htdocs\vue-scrolling-table-sample\node_modules\.acorn.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\mbosse\AppData\Roaming\npm-cache\_logs\2018-02-14T18_27_56_988Z-debug.log
指定的 debug.log 包含以下内容:
19859 警告可选跳过可选依赖:fsevents@1.1.3 (node_modules\fsevents):
19860 warn optional SKIPPING OPTIONAL DEPENDENCY: Error: EPERM: operation not allowed, rename 'C:\xampp\htdocs\vue-scrolling-table-sample\node_modules.staging\fsevents-a6c1bd51\node_modules\abbrev' -> ' C:\xampp\htdocs\vue-scrolling-table-sample\node_modules.staging\abbrev-3ab84c45'
19861 详细可选跳过可选依赖:
19861 详细可选 请尝试以 root/管理员身份再次运行此命令。
19862 详细堆栈错误:ENOENT:没有这样的文件或目录,重命名 'C:\xampp\htdocs\vue-scrolling-table-sample\node_modules\acorn' -> 'C:\xampp\htdocs\vue-scrolling -table-sample\node_modules.acorn.DELETE'
19863 详细 cwd C:\xampp\htdocs\vue-scrolling-table-sample
19864 详细 Windows_NT 10.0.14393
19865 详细 argv "C:\ProgramFiles\nodejs\node.exe" "C:\ProgramFiles\nodejs\node_modules\npm\bin\npm-cli.js" "i"
19866 详细节点 v9.5.0
19867 详细的 npm v5.6.0
19868 错误路径 C:\xampp\htdocs\vue-scrolling-table-sample\node_modules\acorn
19869 错误代码 ENOENT
19870 错误 errno -4058
19871 错误系统调用重命名
19872 错误 enoent ENOENT: 没有这样的文件或目录,重命名 'C:\xampp\htdocs\vue-scrolling-table-sample\node_modules\acorn' -> 'C:\xampp\htdocs\vue-scrolling-table -sample\node_modules.acorn.DELETE'
19873 error enoent 这与 npm 无法找到文件有关。
19874 详细退出 [-4058, true ]
因此,出于某种原因,NPM 似乎无法重命名 node_modules
依赖项。
我尝试将 NPM 回滚到早期版本(以防 npm@latest 不够稳定)。
使用nvm
我已经完全卸载了所有版本的 Node.js 和 NPM 并重新安装了它们。从那以后,我尝试在 Node.js v6.11.3 设置以及 Node.js v8.9.4 上安装我的依赖项,结果相同。
任何建议都会非常有益,谢谢!
【问题讨论】:
许多教程说这是由于竞争条件而发生的,并且多次运行npm install
最终解决了这个问题。情况并非如此,因为失败的总是同一个模块,在依赖项安装过程中永远不会有任何进展。
试试yarn
,通常在windows环境下效果更好。
我的一部分只是好奇是否有其他人遇到此问题!老实说,一直在考虑在可启动的 USB 驱动器上设置 Linux Mint 操作系统。这样我就可以始终在权限更有意义的 Linux 环境中进行开发。
@wostex,我已尝试按照您的建议进行操作。现在在我的项目上使用纱线,这似乎可以为除我的分叉依赖项之外的所有文件正确生成 node_modules
和 .lock
文件。
【参考方案1】:
可能重复 => npm ERR! Error: EPERM: operation not permitted, rename
步骤:
-
npm 缓存清理 --force
npm 安装
如果且仅当这不起作用时,我所做的是擦除 node_modules 文件夹和 package-lock.json(如果您有最后一个)并重复步骤 1 和 2
【讨论】:
谢谢。缓存清理似乎解决了这个错误。 我确实尝试了以上所有方法,但仍然没有运气,还有其他解决方案吗?以上是关于无法在 Windows 10 上安装 NPM 依赖项的主要内容,如果未能解决你的问题,请参考以下文章
npm 无法在 Windows 10 中安装 pm2 或 nodemon
在 WSL2 中:安装了适用于 Windows 10 nodejs 的 Ubuntu 20.04,但 npm 无法正常工作