teknql / shadow-cljs-tailwind-jit

Shadow build hooks for enabling JIT compilation of Tailwind CSS
95 stars 10 forks source link

"Cannot scan 'Documents & Settings' folder" when trying to start-watch! #15

Open crimsonhawk47 opened 1 year ago

crimsonhawk47 commented 1 year ago

Is there a setting somewhere I'm supposed to override? Why would these need to scan documents and settings?

[:app] Starting tailwind process.
node:fs:1438
  handleErrorFromBinding(ctx);
  ^

Error: EPERM: operation not permitted, scandir 'c:/Documents and Settings'
    at Object.readdirSync (node:fs:1438:3)
    at readdirWithFileTypes (c:\{projectPath}node_modules\@nodelib\fs.scandir\out\providers\sync.js:16:33)
    at Object.read (c:\{projectPath}node_modules\@nodelib\fs.scandir\out\providers\sync.js:10:16)
    at SyncReader.scandirSync [as _scandir] (c:\{projectPath}node_modules\@nodelib\fs.scandir\out\index.js:18:17)
    at SyncReader._handleDirectory (c:\{projectPath}node_modules\@nodelib\fs.walk\out\readers\sync.js:28:34)
    at SyncReader._handleQueue (c:\{projectPath}node_modules\@nodelib\fs.walk\out\readers\sync.js:23:18)
    at SyncReader.read (c:\{projectPath}node_modules\@nodelib\fs.walk\out\readers\sync.js:15:14)
    at SyncProvider.read (c:\{projectPath}node_modules\@nodelib\fs.walk\out\providers\sync.js:11:29)
    at ReaderSync.walkSync [as _walkSync] (c:\{projectPath}\node_modules\@nodelib\fs.walk\out\index.js:20:21)
    at ReaderSync.dynamic (c:\{projectPath}node_modules\fast-glob\out\readers\sync.js:13:21) {
  errno: -4048,
  syscall: 'scandir',
  code: 'EPERM',
  path: 'c:/Documents and Settings'
}

shadow-cljs.edn

{:nrepl {:port 7002}
 :deps {:aliases [:shadow]}
 :builds       {:app {:target     :browser
                      :build-hooks
                      [(teknql.tailwind/start-watch!)]
                      :output-dir "target/classes/cljsbuild/public/js"
                      :asset-path "/js"
                      :modules    {:app {:entries [kit.guestbook.core]
                                         :init-fn kit.guestbook.core/init!}}
                      :devtools {:watch-dir "resources/html"}}}}
rschmukler commented 1 year ago

I actually don't do any development on windows so I am not too familiar with how it goes about emulating unix file system resolution (or if it does).

Looking at the error, it seems like it might be an error occurring in Tailwind's runtime.

You could debug by seeing if you can get the project watching using the standard tailwind JIT process and go from there.

If it is an issue with this project, I am definitely interested in figuring out how to fix it; please let me know what you find!

pandeiro commented 3 months ago

FYI I hit a similar issue trying to integrate this in an existing shadow-cljs project on macOS:

Rebuilding...
Error: EPERM: operation not permitted, scandir '/Library/Trial'
    at Object.readdirSync (node:fs:1515:26)
    at readdirWithFileTypes (/Users/mu/Repos/.../node_modules/@nodelib/fs.scandir/out/providers/sync.js:16:33)
    at Object.read (/Users/mu/Repos/.../node_modules/@nodelib/fs.scandir/out/providers/sync.js:10:16)
    at SyncReader.scandirSync [as _scandir] (/Users/mu/Repos/.../node_modules/@nodelib/fs.scandir/out/index.js:18:17)
    at SyncReader._handleDirectory (/Users/mu/Repos/.../node_modules/@nodelib/fs.walk/out/readers/sync.js:28:34)
    at SyncReader._handleQueue (/Users/mu/Repos/.../node_modules/@nodelib/fs.walk/out/readers/sync.js:23:18)
    at SyncReader.read (/Users/mu/Repos/.../node_modules/@nodelib/fs.walk/out/readers/sync.js:15:14)
    at SyncProvider.read (/Users/mu/Repos/.../node_modules/@nodelib/fs.walk/out/providers/sync.js:11:29)
    at ReaderSync.walkSync [as _walkSync] (/Users/mu/Repos/.../node_modules/@nodelib/fs.walk/out/index.js:20:21)
    at ReaderSync.dynamic (/Users/mu/Repos/.../node_modules/fast-glob/out/readers/sync.js:13:21) {
  errno: -1,
  code: 'EPERM',
  syscall: 'scandir',
  path: '/Library/Trial'
}