Determinar o diretório de trabalho da linha de comandos ao executar o script de bin do nó

Eu estou criando uma interface de linha de comando do nó. Ele é instalado globalmente e usa um arquivo bin para executar.

Eu pretendo ter uma janela de comando aberta no diretório raiz dos arquivos que estou trabalhando e, em seguida, basta executar o comando no entanto eu tenho sido incapaz de determinar o diretório de trabalho atual comoprocess.cwd() está retornando o diretório do pacote do nó. Inicialmente, assumi que, como o código está sendo executado usando um arquivo em lote como um wrapper (é assim que os arquivos bin podem ser executados sem o nó no início), então é impossível, mas o coffee-script consegue fazer isso. Eu dei uma olhada na fonte do script de café, mas não consegui seguir (não experimentei o suficiente).

Para testar você mesmo, crie um pacote com este arquivo package.json:

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

este arquivo de pacote de teste no 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');

Alguém poderia lançar alguma luz sobre isso?

e tente obter o diretório da linha de comando dentro de lib / test.

questionAnswers(4)

yourAnswerToTheQuestion