npm 安装错误; npm WARN tar EPERM:不允许操作,futime

npm install errors; npm WARN tar EPERM: operation not permitted, futime

新手,我正在尝试使用 bash 终端来安装 npm 模块并用作 Remote-WSL 终端。

一些背景信息,我使用 VSCode 作为我的代码编辑器。我正在尝试使用 node.js 制作一个 javaScript 应用程序。我在 Windows 10.

上设置了 Ubuntu 终端

将 npm 更新到最新版本后,我在尝试使用 npm install express --save

安装 express 时开始遇到这些错误
npm WARN tar EPERM: operation not permitted, futime
npm WARN tar EPERM: operation not permitted, futime
npm WARN tar EPERM: operation not permitted, futime
// etc, etc, etc 500x...

npm WARN bashdemo@1.0.0 No description
npm WARN bashdemo@1.0.0 No repository field.

npm ERR! code ENOENT
npm ERR! syscall rename
npm ERR! path /mnt/d/Program Files/Workspace/bashDemo/node_modules/bytes
npm ERR! dest /mnt/d/Program Files/Workspace/bashDemo/node_modules/.bytes.DELETE
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, rename '/mnt/d/Program Files/Workspace/bashDemo/node_modules/bytes' -> '/mnt/d/Program Files/Workspace/bashDemo/node_modules/.bytes.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!     /home/aaron/.npm/_logs/2019-11-14T21_41_32_512Z-debug.log

无论我尝试安装哪个模块,此问题仍然存在....

即使恢复到正常运行的原始 npm 版本 6.12.1,这些错误仍然存​​在。

如果我运行npm install我得到

npm WARN bashdemo@1.0.0 No description
npm WARN bashdemo@1.0.0 No repository field.

up to date in 0.636s
found 0 vulnerabilities

我尝试过清除缓存、重置、卸载、打开 linux 子系统 off/on、每次都重新启动计算机、重新安装 Ubuntu 然后完成设置过程,在 github 页面上使用 curl 脚本更新、升级、安装 nvm 现在大约是 3 倍。

我尝试按照之前报告的类似问题的指南卸载并重新安装我的 /mnt/c/。这只会让事情变得更糟,(提示重置并重新安装 Ubuntu 终端)。

我的一个朋友帮我解决了这个问题。是我的一个小错误,很容易被忽视 >.>

简而言之,只需在 windows 上重新安装 node.js 即可解决问题...:/

在更新过程中,我卸载了 node.js 以执行全新安装。如果我在 bash 终端中 运行 node -v,我会看到版本号并知道它安装在 linux 子系统中。

但是,如果我在 Powershell 中检查 node.js,我会发现它没有安装,因为我没有找到返回的版本号。我一定是错过了将 Node 重新安装到我的机器上。我可能安装在不同的地方并且在卸载和重新安装东西的愚蠢混乱中,我忽略了把它放回原来安装它的地方。

总而言之,如果您在使用 node.js 时使用 linux 子系统作为命令行终端,请确保 Node 已正确安装在 Windows。

P.S。当我遇到同样类型的错误时,我没有遇到其他人遇到的驱动器安装问题,所以我的问题通过在我之前安装它的地方重新安装 Node 来解决。

对我来说,关闭杀毒软件有效。它不允许编辑文件夹。

出现此错误的另一种方式是 windows C: 驱动器以 root 所有权而不是用户所有权挂载。

参见:chmod chown wsl improvements

简短的回答是你需要用新的权限重新挂载 C: 驱动器

sudo mount -t drvfs C: /mnt/c -o metadata,uid=1000,gid=1000,umask=22,fmask=111