错误:EPERM:不允许操作,取消链接'D:\ Sources\**\node_modules\fsevents \node_modules\abbrev\package.json'

Moh*_*yan 42 npm package.json

我刚刚更新npm5.4.0.
现在,每当我想安装一个npm包时,我都会收到以下错误:

D:\Sources\DownloadCms\Md.Download\Web.Angular>npm install mds.angular.datetimepicker@latest --save
npm ERR! path D:\Sources\DownloadCms\Md.Download\Web.Angular\node_modules\fsevents\node_modules\abbrev\package.json
npm ERR! code EPERM
npm ERR! errno -4048
npm ERR! syscall unlink
npm ERR! Error: EPERM: operation not permitted, unlink 'D:\Sources\DownloadCms\Md.Download\Web.Angular\node_modules\fsevents\node_modules\abbrev\package.json'
npm ERR!     at Error (native)
npm ERR!  { Error: EPERM: operation not permitted, unlink 'D:\Sources\DownloadCms\Md.Download\Web.Angular\node_modules\fsevents\node_modules\abbrev\package.jso
n'
npm ERR!     at Error (native)
npm ERR!   stack: 'Error: EPERM: operation not permitted, unlink \'D:\\Sources\\DownloadCms\\Md.Download\\Web.Angular\\node_modules\\fsevents\\node_modules\\ab
brev\\package.json\'\n    at Error (native)',
npm ERR!   errno: -4048,
npm ERR!   code: 'EPERM',
npm ERR!   syscall: 'unlink',
npm ERR!   path: 'D:\\Sources\\DownloadCms\\Md.Download\\Web.Angular\\node_modules\\fsevents\\node_modules\\abbrev\\package.json' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Mohammad\AppData\Roaming\npm-cache\_logs\2017-09-03T03_25_50_432Z-debug.log
Run Code Online (Sandbox Code Playgroud)

我不确定,CMD以管理员身份运行.

我也检查过D:\Sources\DownloadCms\Md.Download\Web.Angular\node_modules\fsevents\node_modules\abbrev\package.json\,package.json路径中不存在!

编辑: 升级到v5.4.1,仍然得到相同的错误,甚至无法使用--no-optional :-(

Mar*_*eld 52

我能够通过运行命令提示符/ bash作为管理员并关闭VSCode来解决这个问题!好像VSCode锁定了一些文件.可能还有其他东西可能会为您锁定这些文件.

  • 谢谢!在我的例子中,Visual Studio 2015锁定了一些文件. (6认同)
  • +1为了关闭可能挂在文件上的任何正在运行的进程 - 我已经运行了 vue-cli-service 服务。关闭为我解决了这个问题。 (3认同)
  • +1 - 对我来说,我还必须关闭所有孤立的(?)node.js实例,这些实例在Windows上的vscode中调试时似乎随着时间的推移而积累 (3认同)
  • 就我而言,Process Explorer 总是告诉我,锁定“npm”试图删除的文件的罪魁祸首是……由运行“npm”的“npm”生成的另一个“node.exe”进程!哦,太高兴了,这个工具总是给人惊喜……(这是在 Windows 10、Node 12.11.0、npm 6.11.3 上) (2认同)

hid*_*003 49

这是一个npm 5.4.0问题https://github.com/npm/npm/issues/18287

解决方法是

  • 降级至5.3
  • 尝试运行--no-optional,即 npm install --no-optional

  • 关闭 VS Code 并从外部运行“npm i”对我有用。 (6认同)
  • `--no-optional`为我完全钉了它(@ 5.4.1)! (5认同)
  • 如果您打开了“ VSCode”,然后将其关闭,然后尝试运行“ npm”命令,则该命令肯定会安装,降级不是解决方案。 (2认同)

Moh*_*yan 13

如果你降级到5.3并且仍然像我一样在Windows中得到相同的错误.
使用npm版本工作了几个小时后,我找到了以下解决方案:

1.下载最新的推荐版本nodejs,这些天是node-v6.11.3-x64
2.nodejs用它卸载.
3.转到C:\Users\{YourUsername}\AppData\Roaming文件夹并删除npmnpm-cache文件夹
4.nodejs再次运行安装程序并安装它
5使用npm i -g npm@5.3命令行将npm更新到5.3

现在您应该使用npm而不会出现任何问题.


Jas*_*son 10

我通过将npm从5.4.0降级到5.3版来修复

npm i -g npm@5.3
Run Code Online (Sandbox Code Playgroud)

我希望这对你有所帮助


小智 9

请关闭所有 IDE,如 Visual Studio 代码。通过 node.js 命令提示符运行 npm install 命令。 享受 !


DeC*_*DeC 9

缓存清理并npm更新到最新版本,强制为我工作

npm cache clean --force

npm install -g npm@latest --force
Run Code Online (Sandbox Code Playgroud)


ove*_*ord 9

对于来自 Windows 操作系统的用户,您只需停止开发服务器,然后执行npm install ...命令即可。

奇怪的是 Windows 不允许在服务器运行时安装依赖项,但 MacOS 允许。如果这不起作用,那么只能选择其他选项 - 清理缓存、降级 Nodejs 等。


小智 8

我在 Windows 上遇到了同样的问题。

问题的根源很简单,就是文件夹和文件的访问权限。

在您的项目文件夹中,您需要

  1. 克隆项目后,更改文件夹的属性并更改用户的权限(授予当前用户完全访问权限)。
  2. 从项目文件夹中删除只读选项。(第 1 步和第 2 步需要很长时间,因为它们被复制到下面的整个树中)。
  3. 在项目文件夹内,重新安装节点(npm install restart -g)
  4. 禁用防病毒软件。(可选的)
  5. 禁用防火墙。(可选的)
  6. 重启电脑。
  7. 清除 npm 缓存(npm clear)
  8. 安装项目的依赖项(npm install)

之后,错误“错误:EPERM:不允许操作,取消链接”将不再显示。

如有必要,请记住重新激活防火墙和防病毒软件。


Chr*_*ure 7

我尝试过如何修复Node.js博客中找到的解决方案

只是使用

npm cache clean
Run Code Online (Sandbox Code Playgroud)

在Windows中,如果它拒绝使用

npm cache clean --force
Run Code Online (Sandbox Code Playgroud)

  • 对我不起作用。VSTS 上 CI 中的 Windows(现在是 Azure DevOps) (2认同)

xei*_*ton 7

我遇到了同样的问题,我需要做的就是登录npm

npm login

或者

npm add user //请查阅有关参数的文档  


Md *_*san 6

就我而言,问题是,我没有安装 typescript。虽然我确实安装了 Node 和 Angular。检查您是否安装了 typescript

Run this command: tsc -v
Run Code Online (Sandbox Code Playgroud)

如果没有,则安装 typescript

Run this command: npm install -g typescript
Run Code Online (Sandbox Code Playgroud)

最后安装所需的依赖项

Run this command: npm install
Run Code Online (Sandbox Code Playgroud)

在项目的根文件夹中。

----希望这对某人有帮助----


jed*_*jed 5

如果以上所有方法都不适合您,您可能需要

  • 重新启动你的系统
  • 以管理员身份运行命令提示符
  • 运行npm命令