আমি একটি নোড কমান্ড লাইন ইন্টারফেস তৈরি করছি। এটি বিশ্বব্যাপী ইনস্টল করা হয় এবং কার্যকর করার জন্য একটি বিন ফাইল ব্যবহার করে।
আমি যে ফাইলগুলিতে কাজ করছি তার মূল ডিরেক্টরিতে একটি কমান্ড উইন্ডো খোলা রাখার পরিকল্পনা করছি এবং তারপরে কেবল কমান্ডটি চালাব তবে process.cwd()
নোড প্যাকেজটির ডিরেক্টরিটি ফিরে আসার কারণে আমি বর্তমান ওয়ার্কিং ডিরেক্টরিটি নির্ধারণ করতে পারিনি । আমি প্রাথমিকভাবে ধরে নিয়েছিলাম যেহেতু কোডটি ব্যাচ ফাইলটিকে একটি মোড়ক হিসাবে ব্যবহার করা হচ্ছে (যেভাবে বিন ফাইলগুলি শুরুতে নোড ছাড়া কার্যকর করতে পারে) তবে এটি অসম্ভব তবে কফি-স্ক্রিপ্ট এটি পরিচালনা করে। আমি কফি-স্ক্রিপ্ট উত্সটি একবার দেখেছি তবে এটি অনুসরণ করতে পারি না (যথেষ্ট অভিজ্ঞ নয়)।
নিজের জন্য এটি পরীক্ষা করতে এই প্যাকেজ.জসন ফাইলটি দিয়ে একটি প্যাকেজ তৈরি করুন:
{
"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 / পরীক্ষার ভিতরে কমান্ড লাইন ডিরেক্টরি পান।
process.chdir()
, আসলটি পাওয়ার কোনও উপায় আছে?