npm错误!错误:EPERM:不允许操作,

npm错误!错误:EPERM:不允许操作,,npm,vagrant,npm-install,homestead,Npm,Vagrant,Npm Install,Homestead,我正在尝试运行npm安装,无论我是否以管理员身份运行它,都会不断收到权限错误。我的环境规范如下 Windows 7 Virtual Box 5.1 Vagrant 2.0.1 Homestead Box NPM 5.5.1 NODE 8.9.1 我已经搜索了不同的支持网站,并尝试了建议的修复,但我总是遇到与权限相关的新问题,但出现错误: npm ERR! ETXTBSY: text file is busy, rmdir 或 我使用了命令'npm install--no bin links'

我正在尝试运行npm安装,无论我是否以管理员身份运行它,都会不断收到权限错误。我的环境规范如下

Windows 7
Virtual Box 5.1
Vagrant 2.0.1
Homestead Box
NPM 5.5.1
NODE 8.9.1
我已经搜索了不同的支持网站,并尝试了建议的修复,但我总是遇到与权限相关的新问题,但出现错误:

npm ERR! ETXTBSY: text file is busy, rmdir

我使用了命令'npm install--no bin links',但它仍然不起作用

sudo npm安装--无bin链接
npm错误!路径/主页/流浪者/代码/项目/节点\模块/总结
npm错误!代码EPERM
npm错误!errno-1
npm错误!系统调用重命名
npm错误!错误:EPERM:不允许操作,重命名“/home/vagrant/Code/project/node_modules/sum'->”/home/vagrant/Code/project/node_modules/.sum.DELETE”
npm错误!{错误:EPERM:不允许操作,重命名'/home/vagrant/Code/project/node_modules/sum'->'/home/vagrant/Code/project/node_modules/.sum.DELETE'
npm错误!原因:
npm ERR!{错误:EPERM:不允许操作,重命名'/home/vagrant/Code/project/node_modules/sum'->'/home/vagrant/Code/project/node_modules/.sum up.DELETE'
npm错误!错误号:-1,
npm ERR!代码:“EPERM”,
npm ERR!系统调用:“重命名”,
npm错误!路径:'/home/vagrant/Code/project/node_modules/sum-up',
npm ERR!dest:'/home/vagrant/Code/project/node_modules/.sum-up.DELETE'},
npm ERR!stack:'错误:EPERM:不允许操作,重命名\'/home/vagrant/Code/project/node\u modules/sum\'->'/home/vagrant/Code/project/node\u modules/.sum.DELETE\',
npm错误!错误号:-1,
npm ERR!代码:“EPERM”,
npm ERR!系统调用:“重命名”,
npm错误!路径:'/home/vagrant/Code/project/node_modules/sum-up',
npm ERR!dest:'/home/vagrant/Code/project/node_modules/.sum-up.DELETE'}
npm错误!
npm错误!请以root/管理员身份再次尝试运行此命令。
npm错误!此运行的完整日志可在以下位置找到:
npm错误/home/vagrant/.npm/_logs/2018-01-23T19_51_11_713Z-debug.log

在我的例子中,不确定具体是如何实现的,但似乎外部Windows服务正在锁定npm文件的一部分。因此,我必须在我的vagrant中装入一个外部文件夹(该文件夹不在我的项目中),并且无法从Windows直接看到,并将该文件夹用作npm node_modules文件夹:

sudo mkdir /node_modules && sudo chmod 777 /node_modules
sudo mount --bind /node_modules /vagrant/real_path_to_your_app/node_modules
同时在/etc/fstab中添加此行:

/node_modules   /vagrant/real_path_to_your_app/node_modules   none   bind    0    0
然后从/vagrant/real_path_到您的应用程序,您可以执行:

/vagrant/real_path_to_your_app$ sudo npm install --save your_module

它对我有效-实际上使用了挂载的目录/node_模块。

在我的例子中,不确定具体如何操作,但似乎外部Windows服务正在锁定npm文件的一部分。因此,我必须在我的vagrant中装入一个外部文件夹(该文件夹不在我的项目中),并且无法从Windows直接看到,并将该文件夹用作npm node_modules文件夹:

sudo mkdir /node_modules && sudo chmod 777 /node_modules
sudo mount --bind /node_modules /vagrant/real_path_to_your_app/node_modules
同时在/etc/fstab中添加此行:

/node_modules   /vagrant/real_path_to_your_app/node_modules   none   bind    0    0
然后从/vagrant/real_path_到您的应用程序,您可以执行:

/vagrant/real_path_to_your_app$ sudo npm install --save your_module

这对我来说很有效——实际上使用了挂载的目录/节点模块。

根本问题与Virtualbox共享如何处理Windows文件锁定有关。无论是使用标准共享文件夹(vboxsf)还是nfs,都会发生这种情况。如果在
npm
试图更改某个文件时,另一个进程打开或读取(锁定)了该文件,则整个安装过程将失败

如何修复:

  • 从管理员终端运行
    vagrant up
    (和其他命令)。这可确保符号链接正常工作。启用符号链接还有其他方法-如果使用其中一种方法,请确保使用共享文件夹中的
    ln-sab
    对其进行测试
  • 通过禁用进程或排除vagrant文件夹,确保没有其他进程打开共享文件夹中的任何文件。这包括但不限于:
  • Windows Defender或其他防病毒软件
  • Windows搜索索引或其他索引软件
  • Dropbox或其他文件同步软件
  • 如果您对上面的第2点仍然有问题,您可以使用过滤到vagrant目录的方法来检测除Virtualbox(VBoxHeadless.exe)之外的任何进程的访问


    有了上述功能,我就能够顺利运行
    npm安装

    根本问题与Virtualbox共享如何处理Windows文件锁定有关。无论是使用标准共享文件夹(vboxsf)还是nfs,都会发生这种情况。如果在
    npm
    试图更改某个文件时,另一个进程打开或读取(锁定)了该文件,则整个安装过程将失败

    如何修复:

  • 从管理员终端运行
    vagrant up
    (和其他命令)。这可确保符号链接正常工作。启用符号链接还有其他方法-如果使用其中一种方法,请确保使用共享文件夹中的
    ln-sab
    对其进行测试
  • 通过禁用进程或排除vagrant文件夹,确保没有其他进程打开共享文件夹中的任何文件。这包括但不限于:
  • Windows Defender或其他防病毒软件
  • Windows搜索索引或其他索引软件
  • Dropbox或其他文件同步软件
  • 如果您对上面的第2点仍然有问题,您可以使用过滤到vagrant目录的方法来检测除Virtualbox(VBoxHeadless.exe)之外的任何进程的访问


    有了上述功能,我就可以顺利地运行npm安装了。

    当我遇到类似错误时,我关闭了Visual Studio代码编辑器并运行了npm安装。它解决了这个问题

    当我遇到类似错误时,我关闭了Visual Studio代码编辑器并运行了npm安装。它解决了这个问题

    我只需关闭打开package.json文件的Visual Studio代码IDE,然后尝试npm安装,它对我有效。

    我只需关闭打开package.json文件的Visual Studio代码IDE,然后尝试npm安装,它对我有效。

    我在Eclipse IDE上出现此错误。解决方案是重新启动它,然后重新启动