Я создаю интерфейс командной строки node. Он устанавливается глобально и использует файл bin для выполнения.
Я планирую открыть окно команд в корневом каталоге файлов, над которыми я работаю, а затем просто запустить команду, однако мне не удалось определить текущий рабочий каталог, так как process.cwd()
возвращает каталог node пакет. Первоначально предполагалось, что, поскольку код выполняется с использованием пакетного файла в качестве обертки (таким образом, файлы bin могут выполняться без node в начале), тогда это невозможно, но кофе script удается это сделать. Я посмотрел на источник кофе script, но не смог его выполнить (недостаточно опытного).
Чтобы проверить его самостоятельно, создайте пакет с этим пакетом. json файл:
{
"name": "test-package",
"version": "1.0.0",
"bin": {
"test-package": "./bin/test-package"
},
"main": "/lib/test"
}
этот файл тестового пакета в корзине:
#!/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');
Может ли кто-нибудь пролить свет на это.
а затем попробуйте получить каталог командной строки внутри lib/test.