无法在 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 inpm 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 er​​ror 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 依赖项的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Windows 10 上 npm 安装 web3

npm 只是不会安装节点 sass

nodejs npm 安装平台特定包

npm 无法在 Windows 10 中安装 pm2 或 nodemon

在 WSL2 中:安装了适用于 Windows 10 nodejs 的 Ubuntu 20.04,但 npm 无法正常工作

即使存在依赖项,npm 也无法安装 quick.db