Sto creando un'interfaccia a riga di comando del nodo. Viene installato globalmente e utilizza un file bin per l'esecuzione.
Ho in programma di aprire una finestra di comando nella directory principale dei file su cui sto lavorando e quindi eseguire il comando, tuttavia non sono stato in grado di determinare la directory di lavoro corrente poiché process.cwd()
restituisce la directory del pacchetto del nodo. Inizialmente ho pensato che, poiché il codice viene eseguito utilizzando un file batch come wrapper (è così che i file bin possono essere eseguiti senza nodo all'inizio), allora è impossibile ma coffee-script riesce a farlo. Ho dato un'occhiata alla fonte della sceneggiatura del caffè ma non sono riuscita a seguirla (non abbastanza esperto).
Per testarlo tu stesso, crea un pacchetto con questo file package.json:
{
"name": "test-package",
"version": "1.0.0",
"bin": {
"test-package": "./bin/test-package"
},
"main": "/lib/test"
}
questo file del pacchetto di test in 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');
Qualcuno potrebbe far luce su questo.
e quindi provare a ottenere la directory della riga di comando all'interno di lib / test.
process.chdir()
, c'è un modo per ottenere l'originale?