添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement . We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Describe the bug

The following issue is happening on a large project I migrated from vue-cli to Vite. However, to eliminate as many variables as possible, I was able to reproduce the exact issue with a newly scaffolded project using the npm create vite@latest command.

The watcher process started by vite build --watch fails periodically. Issue #10096 is exactly what we are seeing happen. If I add a folder to my C:\ drive (or add files to any folder within the C:\ drive), the watcher fails. #10096 is closed and was supposedly fixed by #11261 , but we are still seeing this happen, even with a newly scaffolded Vite project.

Using a watcher is integral to how my team works on our various Vue projects. While a fix is being investigated, are there any work arounds besides changing the directory of the project from the C:\ to D:\ drive? I can't remember what thread I found that workaround in, but this is not an acceptable workaround for my team.

Thanks in advance!

Reproduction

https://stackblitz.com/edit/vitejs-vite-ic568n?file=package.json,index.html&terminal=dev

Steps to reproduce

npm create vite@latest

Scaffolding options: Vue, TypeScript

vite build --watch

Add a new folder to your C:\ drive

System Info

System:
    OS: Windows 10 10.0.22621
    CPU: (24) x64 12th Gen Intel(R) Core(TM) i9-12900K
    Memory: 51.57 GB / 63.75 GB
Binaries:
    Node: 19.8.1 - C:\Program Files\nodejs\node.EXE
    npm: 9.5.1 - C:\Program Files\nodejs\npm.CMD
Browsers:
    Edge: Spartan (44.22621.1702.0), Chromium (113.0.1774.42)
    Internet Explorer: 11.0.22621.1
npmPackages:
    @vitejs/plugin-vue: ^4.2.3 => 4.2.3
    vite: 4.3.7 => 4.3.7

Used Package Manager

(Parts of the file paths have been redacted)

node:events:498
Process terminated with code 1.
throw er; // Unhandled 'error' event
Error: EBUSY: resource busy or locked, lstat 'C:\DumpStack.log.tmp'
Emitted 'error' event on FSWatcher instance at:
at FSWatcher._handleError (file:///C:/Projects/clientapp/node_modules/rollup/dist/es/shared/watch.js:4251:10)
at ReaddirpStream.NodeFsHandler._boundHandleError (file:///C:/Projects/clientapp/node_modules/rollup/dist/es/shared/watch.js:2725:43)
at ReaddirpStream.emit (node:events:520:28)
at emitErrorNT (node:internal/streams/destroy:157:8)
at emitErrorCloseNT (node:internal/streams/destroy:122:3)
at processTicksAndRejections (node:internal/process/task_queues:83:21) {
errno: -4082,
code: 'EBUSY',
syscall: 'lstat',
path: 'C:\DumpStack.log.tmp'

Validations

  • Follow our Code of Conduct
  • Read the Contributing Guidelines .
  • Read the docs .
  • Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
  • Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to vuejs/core instead.
  • Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server .
  • The provided reproduction is a minimal reproducible example of the bug.
  • @sapphi-red removing the vite.svg image and references to it in a newly scaffolded Vite project fixes the issue.

    This is obviously something we can't do in our actual projects (removing all images / static assets).

    I'm assuming what you posted are the problem areas in Vite's code. Is there anything I can do with my own source code to mitigate the issue while a fix is worked on?

    Error: EBUSY: resource busy or locked, lstat 'D:\DumpStack.log.tmp' on vite build --watch #13333

    One of the methods I use is to trigger stably: when you use unocss, just create a file in the root directory of the disk where the project is located.

    After removing '/__uno.css' from 'build watch', the project can be compiled normally without errors

    like this:

    defineConfig({
      build: {
    		watch: {
    			exclude: ['node_modules/**', "/__uno.css"]