windows node.js null device nul

¿Cómo puedo escribir en el dispositivo NUL en Windows desde node.js?



null device (2)

Esto me está molestando por varios días. Sé sobre la redirección de flujo estándar para el dispositivo NUL, pero este no es el caso. node.js usa CreateFileW bajo sus enlaces fs native / libuv.

Desafortunadamente usando algo como:

require(''fs'').writeFileSync(''NUL'', ''foo'')

crea un archivo NUL en el cwd que tiene 3 bytes.

Intenté escribir en / Device / Null, pero como soy casi un * nix head donde todo es un archivo, no pude encontrar una ruta de trabajo para / Device / Null. Tales como //. / Device / Null que arroja ENOENT.

¿Alguna idea sobre cómo hacer que esto funcione en Windows?

Esto parece estar relacionado, pero no puedo rastrear todo el flujo de lib / fs.js a uv / src / win / fs.c para comprobar que el argumento de la ruta no adolece de algún tipo de resolución de ruta absoluta.



La ruta válida al dispositivo NUL es "////.//NUL" , no NUL , por lo que el uso es: fs.writeFileSync("////.//NUL", "foo") . Este problema se planteó en contra de Node.js en GitHub: https://github.com/nodejs/node-v0.x-archive/issues/9271

Como NUL es un dispositivo, no un archivo, se debe acceder a través del espacio de nombres del dispositivo; esto requiere poner //./ principio (las otras barras son para escaparse) - ver https://msdn.microsoft.com/en -gb / library / windows / desktop / aa365247.aspx # Win32_Device_Namespaces .

También hay una biblioteca dev-null simple en NPM que se puede usar con streams: https://www.npmjs.com/package/dev-null (no con .writeFile ).