Я створюю інтерфейс командного рядка вузла. Він встановлений у всьому світі та використовує файл bin для виконання.
Я планую відкрити вікно команд у кореневому каталозі файлів, над якими я працюю, а потім просто запустити команду, проте я не зміг визначити поточний робочий каталог, як process.cwd()
повертає каталог пакету вузлів. Я спочатку припускав, що оскільки код виконується з використанням пакетного файлу як обгортки (саме так бінські файли можуть виконуватись без вузла на початку), то це неможливо, але кава-скрипт вдається це зробити. Я подивився джерело сценарію кави, але не зміг його дотримуватися (недостатньо досвідчений).
Щоб перевірити це на собі, створіть пакет із цим файлом package.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.
process.chdir()
, чи є спосіб отримати оригінал?