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.