ฉันกำลังสร้างส่วนต่อประสานบรรทัดคำสั่งของโหนด มีการติดตั้งทั่วโลกและใช้ไฟล์ bin เพื่อดำเนินการ
ฉันวางแผนที่จะเปิดหน้าต่างคำสั่งที่ไดเร็กทอรีรูทของไฟล์ที่ฉันกำลังทำงานจากนั้นเพียงแค่รันคำสั่ง แต่ฉันไม่สามารถกำหนดไดเร็กทอรีการทำงานปัจจุบันได้เนื่องจากprocess.cwd()
กำลังส่งคืนไดเร็กทอรีของโหนดแพ็กเกจ ในตอนแรกฉันสันนิษฐานว่าเนื่องจากโค้ดถูกเรียกใช้โดยใช้ไฟล์แบตช์เป็นตัวห่อ (นั่นคือวิธีที่ไฟล์ bin สามารถดำเนินการโดยไม่มีโหนดที่จุดเริ่มต้น) จึงเป็นไปไม่ได้ แต่ coffee-script สามารถจัดการได้ ฉันดูแหล่งที่มาของสคริปต์กาแฟ แต่ไม่สามารถติดตามได้ (มีประสบการณ์ไม่เพียงพอ)
หากต้องการทดสอบด้วยตัวคุณเองให้สร้างแพ็คเกจด้วยไฟล์ package.json นี้:
{
"name": "test-package",
"version": "1.0.0",
"bin": {
"test-package": "./bin/test-package"
},
"main": "/lib/test"
}
ไฟล์แพ็กเกจทดสอบนี้ใน 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');
ใครช่วยให้ความกระจ่างเกี่ยวกับเรื่องนี้
จากนั้นลองรับไดเร็กทอรีบรรทัดคำสั่งภายใน lib / test
process.chdir()
นี้มีวิธีใดบ้างที่จะได้รับต้นฉบับ?