Saya membuat antarmuka baris perintah node. Ini diinstal secara global dan menggunakan file bin untuk dieksekusi.
Saya berencana untuk membuka jendela perintah di direktori root dari file yang sedang saya kerjakan dan kemudian jalankan saja perintah tersebut namun saya tidak dapat menentukan direktori kerja saat process.cwd()ini karena mengembalikan direktori paket node. Saya awalnya berasumsi bahwa karena kode sedang dieksekusi menggunakan file batch sebagai pembungkus (begitulah file bin dapat dieksekusi tanpa node di awal) maka itu tidak mungkin tetapi skrip kopi berhasil melakukannya. Saya melihat sumber skrip kopi tetapi tidak dapat mengikutinya (tidak cukup berpengalaman).
Untuk mengujinya sendiri, buat paket dengan file package.json ini:
{
"name": "test-package",
"version": "1.0.0",
"bin": {
"test-package": "./bin/test-package"
},
"main": "/lib/test"
}
file paket uji ini di 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');
Adakah yang bisa menjelaskan hal ini.
dan kemudian mencoba dan mendapatkan direktori baris perintah di dalam lib / test.
process.chdir(), apakah ada cara untuk mendapatkan aslinya?