在宅基地上运行npm install [any package]
甚至npm install
时,我收到以下错误:
npm ERR! ETXTBSY: text file is busy, rmdir '/home/vagrant/valemus-shop-starter/valemus-shop/node_modules/fsevents'
可以看到调试日志here
我尝试删除fsevents
目录,但它不存在。
我该如何解决这个问题?
答案 0 :(得分:23)
当我想改变前端的反应时,我在Windows 10 + VirtualBox(VBox)+ Vagrant + Laravel Homestead上遇到了同样的事情。
经过大量的搜索和反复试验后,这个解决方案对我有用,也许它也适合你。
停止流浪汉:
vagrant halt
在Homestead目录
中的Vagrantfile的configure部分添加了以下内容 config.vm.provider "virtualbox" do |v|
v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
end
以管理员身份启动cmd
然后vagrant up
和vagrant ssh
cd to development dir
然后按rm -rf node_modules/
移除了node_modules dir(如果有的话)
然后运行sudo npm install && npm run dev
并且整个安装过程没有任何警告或错误。
这是两个小时阅读的结果:)
修改强>
如果您的问题没有解决,并且您有上述设置,则可以使用其他解决方案:
在Windows机器上安装节点
然后cd到您的开发目录并从Windows运行npm install
,您将获得相同的结果。
您也可以在之后从Windows cmd发起npm run watch
。
这有助于我解除VM的负担,让Windows执行监视并接收Windows中npm run watch
的通知。
干杯
答案 1 :(得分:9)
只需在Windows中而不是在Homestead中发出“npm install”。当然,你需要安装npm for windows才能做到这一点。
答案 2 :(得分:9)
将npm版本降级到5.7.1对我来说很成功。
用于降级的命令:npm install -g npm@5.7.1
我正在使用Win10,Vagrant,Ubuntu v14.04和Node v8.11.4
答案 3 :(得分:8)
同样的事发生在我身上
我的环境是linux
fsevents是专用于mac
的模块请尝试以下命令
npm install --no-optional
答案 4 :(得分:8)
我在配备Homestead的Windows 10机器上为这个问题苦苦挣扎。经过大量的努力,我以这种方式解决了这个问题;
删除您的node_modules文件夹。
您在 Windows终端上运行以下命令:
npm install --no-bin-links (After some experience it is necessary for virtual machines)
npm rebuild --no-bin links
通常在执行以下命令后可以使用,但是如果出现此错误
“ Node Sass找不到您当前环境的绑定:”
请在 Homestead Terminal 上运行此命令以安装Linux节点Sass。
npm rebuild node-sass
如果不起作用,请尝试使用纱线。删除节点模块文件夹package.json.lock和yarn.lock(如果有)文件,然后键入
yarn install
如果所有这些命令都不能保存您,请在虚拟机中使用所有npm命令。将起作用。
希望这对您有帮助...
答案 5 :(得分:4)
即使按照
进行操作,我仍然遇到错误。 config.vm.provider "virtualbox" do |v|
v.customize ["setextradata", :id,
"VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
end
根据Babak Bandpey的建议
原来,还有另一个令人讨厌的文件路径字符限制问题。如果您使用长名称的节点模块,则这种情况经常发生。您可以在将vagrant ssh放入linux vm之后,按照以下步骤轻松解决此问题:
mkdir ~/node_modules
将符号链接添加到您刚刚在项目文件夹中创建的“ node_modules”文件夹
ln -sf ~/node_modules /vagrant/your-project-folder
此解决方案将确保所有节点模块都存储在主目录中,而不是同步文件夹中。原始来源:https://blog.rudylee.com/2014/10/27/symbolic-links-with-vagrant-windows/
希望它有助于解决类似问题,谢谢!
答案 6 :(得分:3)
我也很难找到解决方案,但现在就是。
要进行更新,您可以安装n
sudo npm install -g n
然后只是:
sudo n latest
在流浪汉中:
npm install --save-dev cross-env
npm install
npm run dev
虽然我花了整整一天时间找到合适的解决方案(https://www.npmjs.com/package/cross-env)
,但确实如此答案 7 :(得分:3)
我也遇到了“npm install”的问题,我使用Windows 10.最后我修好了,我做的是我退出“vagrant ssh”并运行“vagrant box update”,然后“npm install”工作了。请注意,我从“vagrant ssh”中运行了“vagrant box update”和“npm install”。希望它有所帮助。
答案 8 :(得分:1)
我必须首先删除node_modules文件夹,然后我做了
sudo chmod a+x .
为了确保我有权在机器上做任何事情,然后我
sudo npm install --no-bin-links
根据我的经验,在vagrant中不需要bin链接,因为这些VM不支持bin链接(如果我错了,请纠正我)。那我就是
sudo npm run dev
此时有些人可能会遇到没有发现交叉env的错误。在这种情况下,只需删除package.json文件中的cross-env并再次运行它。它对我有用,但有些人仍然遇到同样的问题。可能值得一试。