Determine el directorio de trabajo de la línea de comandos cuando ejecute el script bin de nodo

Estoy creando una interfaz de línea de comandos de nodo. Se instala globalmente y utiliza un archivo bin para ejecutar.

Planeo tener una ventana de comandos abierta en el directorio raíz de los archivos en los que estoy trabajando y luego ejecutar el comando, pero no he podido determinar el directorio de trabajo actual comoprocess.cwd() Está devolviendo el directorio del paquete del nodo. Inicialmente asumí que, dado que el código se está ejecutando usando un archivo por lotes como envoltorio (así es como los archivos bin pueden ejecutarse sin nodo al principio), es imposible pero Coffee-script lo logra. Eché un vistazo a la fuente del script de café, pero no pude seguirla (no tengo suficiente experiencia).

Para probarlo por ti mismo, crea un paquete con este archivo package.json:

{
  "name": "test-package",
  "version": "1.0.0",
  "bin": {
    "test-package":  "./bin/test-package"
  },
  "main": "/lib/test"
}

este archivo de paquete de prueba en bin:

#!/usr/bin/env node

var path = require('path');
var fs   = require('fs');
var lib  = path.join(path.dirname(fs.realpathSync(__filename)), '../lib');

require(lib + '/test');

¿Podría alguien arrojar algo de luz sobre esto?

y luego intente y obtenga el directorio de línea de comando dentro de lib / test.

Respuestas a la pregunta(4)

Su respuesta a la pregunta