Windows环境下运行gatsby develop/build出现EBUSY错误导致构建失败如何解决?
这个EBUSY错误是Windows系统特有的文件锁冲突问题,触发原因是你要复制的图片文件被其他进程占用,导致Gatsby无法执行写入操作,可按以下步骤排查解决:
- 首先关闭所有可能访问项目目录的程序:包括打开项目文件夹的资源管理器窗口、代码编辑器的图片预览类插件、之前未正常退出的Gatsby进程,打开任务管理器手动结束所有
node.exe进程后再重试构建。 - 检查安全软件规则:Windows Defender、第三方杀毒软件如果正在扫描项目的
.cache或public目录也会触发文件锁,将项目根目录加入安全软件的扫描排除列表即可。 - 执行完整的缓存清理与依赖重装:
# Windows 命令行下执行 taskkill /f /im node.exe rmdir /s /q .cache public node_modules npm install # 如使用yarn则替换为 yarn install
- 降低Gatsby并行处理配置,避免高并发IO触发Windows文件锁冲突,修改
gatsby-config.js对应插件配置:
module.exports = { plugins: [ { resolve: `gatsby-source-wordpress`, options: { schema: { perPage: 10, requestConcurrency: 5, previewRequestConcurrency: 2, }, }, }, { resolve: `gatsby-plugin-sharp`, options: { concurrency: 2, failOnError: false, }, }, ] }
- 如以上方案都无效,建议切换到WSL2环境运行Gatsby,Windows原生文件系统和Node.js的IO适配存在已知缺陷,Linux环境下不会出现这类资源锁错误。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

