Tworzę interfejs wiersza poleceń węzła. Jest instalowany globalnie i do wykonania używa pliku bin.
Planuję otworzyć okno poleceń w katalogu głównym plików, nad którymi pracuję, a następnie po prostu uruchomić polecenie, jednak nie mogłem określić bieżącego katalogu roboczego, ponieważ zwracam process.cwd()
katalog pakietu węzła. Początkowo zakładałem, że skoro kod jest wykonywany przy użyciu pliku wsadowego jako opakowania (w ten sposób pliki bin mogą działać bez węzła na początku), to jest to niemożliwe, ale coffee-script udaje się to zrobić. Rzuciłem okiem na źródło skryptu kawy, ale nie mogłem go śledzić (nie miałem wystarczającego doświadczenia).
Aby przetestować to samodzielnie, utwórz pakiet z tym plikiem 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 lib / test.
process.chdir()
jest jakiś sposób na zdobycie oryginału?