vite.js 错误:EBUSY:Dropbox 应用程序运行时资源繁忙或锁定

问题描述 投票:0回答:1

所以我刚开始使用 vite.js 开发我的 React 应用程序。起初我无法弄清楚为什么每当我尝试以开发模式运行时我总是收到这个错误

[vite] error while updating dependencies:
Error: EBUSY: resource busy or locked, rename 'H:\Dropbox\PROJECTS\website\node_modules\.vite\deps_temp' -> 'H:\Dropbox\PROJECTS\website\node_modules\.vite\deps'

在浏览了一些评论后,我发现这个答案表明 Dropbox 是问题所在,对我来说确实如此。因此,虽然我可以无限期地关闭文件同步并且不再有问题,但我想知道是否有一种方法可以保持文件同步而不必处理这个问题。

reactjs dropbox vite
1个回答
0
投票

问题:Vite 依赖于在里面创建和重命名临时文件夹
node_modules

不仅仅是在Vite启动的时候。它似乎发生在每次热模块更新期间。我不认为 Webpack 做到了这一点。 (但是我在运行

npm install
时遇到了同样的问题,它也依赖于重命名临时文件夹。)

有比临时暂停 Dropbox 更永久的解决方案。

解决方案:告诉 Dropbox 忽略
node_modules
文件夹

无论如何这是个好主意,因为:

  • 它避免用重复的

    node_modules
    内容填满您的在线Dropbox空间

  • 它避免了不必要的网络流量,让您的实际源代码能够更快地同步

  • 您可以always在具有同步

    node_modules
    的相同或不同计算机上重新生成
    package.json
    ,通过运行
    npm install

步骤 1. 以管理员身份运行 Powershell

  • 开始菜单

  • 键入“Powershell”

  • 右键单击“Windows Powershell”,然后选择“以管理员身份运行”

  • 等待用户帐户控制窗口(有时它隐藏在其他窗口后面)并批准它

第 2 步。导航到您的项目文件夹

cd "/users/bob/dropbox/software-development/my-amazing-app/"

步骤 3. 发出 Powershell 命令

Set-Content -Path './node_modules' -Stream com.dropbox.ignored -Value 1

如果您随后看到很多疯狂的 Dropbox 活动,请不要惊慌,说这是“上传文件”。完成此“上传”后,它们将从 Dropbox 网站上消失,此后您可以自由更新

node_modules
,而无需同步任何进一步的更新。

您可以同时为多个软件项目执行此操作

转到父文件夹,并告诉 Powershell 遍历所有子文件夹,并告诉 Dropbox 忽略每个子文件夹中的

node_modules

cd "/users/bob/dropbox/software-development/"

Get-ChildItem -Directory | ForEach-Object {
    Set-Content -Path "$($_.FullName)/node_modules" -Stream com.dropbox.ignored -Value 1
}
© www.soinside.com 2019 - 2024. All rights reserved.