Określ katalog roboczy wiersza poleceń podczas uruchamiania skryptu bin węzła

Tworzę interfejs linii poleceń węzła. Jest instalowany globalnie i używa pliku bin do wykonania.

Mam zamiar otworzyć okno poleceń w katalogu głównym plików, nad którymi pracuję, a następnie uruchomić polecenie, ale nie mogę określić bieżącego katalogu roboczego jakoprocess.cwd() zwraca katalog pakietu węzłów. Początkowo założyłem, że ponieważ kod jest wykonywany przy użyciu pliku wsadowego jako opakowania (tzn. W jaki sposób pliki bin mogą być uruchamiane bez węzła na początku), to jest niemożliwe, ale skrypt kawowy to potrafi. Przyjrzałem się źródłu skryptu kawy, ale nie mogłem go śledzić (niewystarczająco doświadczony).

Aby to sprawdzić, utwórz pakiet za pomocą tego pliku package.json:

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

ten plik pakietu testowego w 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');

Czy ktoś mógłby rzucić na to trochę światła.

a następnie spróbuj pobrać katalog wiersza poleceń wewnątrz biblioteki lib / test.

questionAnswers(4)

yourAnswerToTheQuestion