Bir düğüm komut satırı arayüzü oluşturuyorum. Global olarak kurulur ve yürütmek için bir bin dosyası kullanır.
Üzerinde çalıştığım dosyaların kök dizininde bir komut penceresi açmayı ve ardından sadece komutu çalıştırmayı planlıyorum, ancak process.cwd()
düğüm paketinin dizinini döndürürken mevcut çalışma dizinini belirleyemedim . Başlangıçta, kodun bir sarmalayıcı olarak bir toplu iş dosyası kullanılarak yürütüldüğünü varsaydım (bu, başlangıçta bin dosyalarının düğüm olmadan nasıl yürütülebileceğidir) o zaman imkansızdır, ancak kahve betiği bunu başarır. Kahve senaryosu kaynağına bir göz attım ama takip edemedim (yeterince tecrübeli değilim).
Kendiniz test etmek için bu package.json dosyasıyla bir paket oluşturun:
{
"name": "test-package",
"version": "1.0.0",
"bin": {
"test-package": "./bin/test-package"
},
"main": "/lib/test"
}
kutudaki bu test paketi dosyası:
#!/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');
Biri buna biraz ışık tutabilir mi?
ve sonra lib / test içindeki komut satırı dizinini deneyin ve alın.
process.chdir()
, orijinali almanın bir yolu var mı?