LearnBoost / up

Zero-downtime reloads and requests load balancer based on distribute.
540 stars 73 forks source link

Error: "use fs.watch api instead" using the --watch flag on Windows, Node 0.6.6 #15

Open jpoehls opened 12 years ago

jpoehls commented 12 years ago

I'm on Windows 7 32bit. Node 0.6.6. Up 0.1.7.

When I run my app with up server.js it works fine, but when I add the --watch flag (i.e. up server.js --watch) it fails with the error:

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: use fs.watch api instead
    at Object.watchFile (fs.js:734:11)
    at C:\Users\jpoehls\AppData\Roaming\npm\node_modules\up\bin\up:237:10
    at Array.forEach (native)
    at watch (C:\Users\jpoehls\AppData\Roaming\npm\node_modules\up\bin\up:236:11)
    at Object.<anonymous> (C:\Users\jpoehls\AppData\Roaming\npm\node_modules\up\bin\up:249:3)
    at Module._compile (module.js:432:26)
    at Object..js (module.js:450:10)
    at Module.load (module.js:351:31)
    at Function._load (module.js:310:12)
    at Array.0 (module.js:470:10)
rauchg commented 12 years ago

Can you upgrade to Node 0.6.12?

jpoehls commented 12 years ago

I upgraded to Node 0.6.12 and then tried again, same error. Here's the error, the stack trace changed slightly with the node upgrade.

  up-cli starting cluster with 2 workers on port 3000
  up-cli `kill -s SIGUSR2 3052` or ctrl + r to load new code
  up spawning 2 workers from master 3052
  up worker 4624 created
  up worker 1136 created
  up-cli watching "C:\hg\canary" for changes

node.js:201
        throw e; // process.nextTick error, or 'error' event on first tick
              ^
Error: use fs.watch api instead
    at Object.watchFile (fs.js:734:11)
    at C:\Users\jpoehls\AppData\Roaming\npm\node_modules\up\bin\up:237:10
    at Array.forEach (native)
    at watch (C:\Users\jpoehls\AppData\Roaming\npm\node_modules\up\bin\up:236:11)
    at Object.<anonymous> (C:\Users\jpoehls\AppData\Roaming\npm\node_modules\up\bin\up:249:3)
    at Module._compile (module.js:441:26)
    at Object..js (module.js:459:10)
    at Module.load (module.js:348:31)
    at Function._load (module.js:308:12)
    at Array.0 (module.js:479:10)
rauchg commented 12 years ago

That's really odd. No mention of that here

jpoehls commented 12 years ago

Looks like the CoffeeScript guys hit the same problem. From the looks of the conversation on this thread they ended up using fs.watchFile if it is supported and then falling back to fs.watch when it isn't (i.e. on Windows).

TooTallNate commented 12 years ago

This should work on Windows now on node v0.8.x.