TypeScript প্রজেক্টে কোড কম্পাইল করার জন্য tsconfig.json একটি অত্যন্ত গুরুত্বপূর্ণ কনফিগারেশন ফাইল। এই ফাইলের মাধ্যমে আপনি TypeScript কম্পাইলারের আচরণ এবং কোড ট্রান্সপাইলেশন প্রক্রিয়াটি নিয়ন্ত্রণ করতে পারেন। এটি মূলত প্রজেক্টের রুট ডিরেক্টরিতে রাখা হয় এবং সেখানে বিভিন্ন কনফিগারেশন অপশন নির্ধারণ করা হয় যা আপনার TypeScript কোডের কম্পাইলেশন প্রক্রিয়া নিয়ন্ত্রণ করে।
১. tsconfig.json ফাইল কী?
tsconfig.json ফাইলটি একটি JSON (JavaScript Object Notation) ফাইল, যা TypeScript প্রজেক্টের কনফিগারেশন সংক্রান্ত তথ্য ধারণ করে। এতে আপনি TypeScript কম্পাইলারের বিভিন্ন সেটিংস, যেমন ইনপুট ফাইল, আউটপুট ফাইল, টাইপ চেকিং অপশন ইত্যাদি নির্ধারণ করতে পারেন।
২. tsconfig.json এর সাধারণ গঠন
একটি সাধারণ tsconfig.json ফাইল দেখতে এরকম হতে পারে:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"outDir": "./dist"
},
"include": ["src/**/*"],
"exclude": ["node_modules"]
}
এখানে:
- compilerOptions: এটি প্রধান কনফিগারেশন যেখানে কম্পাইলারের বিভিন্ন সেটিংস নির্ধারণ করা হয়।
- include: এই অংশে আপনি কোন ফাইল বা ডিরেক্টরিগুলি প্রজেক্টের অন্তর্ভুক্ত হবে তা নির্ধারণ করেন।
- exclude: এখানে আপনি নির্দিষ্ট ফাইল বা ডিরেক্টরি উল্লেখ করতে পারেন যা প্রজেক্টের অংশ হবে না।
৩. মুখ্য কনফিগারেশন অপশনস
tsconfig.json ফাইলে compilerOptions এবং অন্যান্য অপশনগুলির মাধ্যমে আপনি টাইপস্ক্রিপ্ট কম্পাইলার কিভাবে কাজ করবে তা কাস্টমাইজ করতে পারেন। নিচে কিছু গুরুত্বপূর্ণ কনফিগারেশন অপশন উল্লেখ করা হলো:
১. target
এটি নির্ধারণ করে যে TypeScript কোডটি কোন জাভাস্ক্রিপ্ট সংস্করণে কম্পাইল হবে।
"target": "es6"
উদাহরণস্বরূপ, es6 এর মানে হলো TypeScript কোডটি ECMAScript 6 (ES6) ফিচারসহ কম্পাইল হবে।
২. module
এই অপশনটি নির্ধারণ করে যে আউটপুট ফাইলটি কোন মডিউল সিস্টেম ব্যবহার করবে (যেমন commonjs, amd, es6, ইত্যাদি)।
"module": "commonjs"
৩. strict
এটি টাইপস্ক্রিপ্টের সমস্ত strict চেকিং অপশনস (যেমন noImplicitAny, strictNullChecks, ইত্যাদি) সক্ষম করে।
"strict": true
৪. esModuleInterop
এই অপশনটি কম্পাইলারকে import এবং export সিনট্যাক্সের সাথে আরও ভালভাবে ইন্টারঅপেবল হতে সাহায্য করে। এটি মূলত কমনজেএস (CommonJS) মডিউল ইম্পোর্টের সময় সহায়ক।
"esModuleInterop": true
৫. skipLibCheck
এই অপশনটি লাইব্রেরি ফাইলগুলির টাইপ চেকিংকে অগ্রাহ্য করতে ব্যবহার করা হয়, যা ডিপেনডেন্সি ও টাইপ ডিফিনিশনগুলির মধ্যে কিছু ত্রুটি থেকে বাঁচাতে সাহায্য করতে পারে।
"skipLibCheck": true
৬. forceConsistentCasingInFileNames
এটি নিশ্চিত করে যে আপনার ফাইল নামের কেস (uppercase বা lowercase) সঠিক এবং কনসিস্টেন্ট থাকে।
"forceConsistentCasingInFileNames": true
৭. outDir
এই অপশনটি নির্ধারণ করে যে কম্পাইল করা কোড কোথায় সংরক্ষণ হবে।
"outDir": "./dist"
এটি সমস্ত কম্পাইলড ফাইলকে dist ডিরেক্টরিতে আউটপুট করবে।
৪. include এবং exclude অপশনস
- include: এই অপশনের মাধ্যমে আপনি নির্দিষ্ট ফাইল বা ডিরেক্টরি নির্বাচন করতে পারেন যেগুলি কম্পাইল হবে।
"include": ["src/**/*"]
এখানে "src/**/*" এর মানে হল, সমস্ত ফাইল এবং সাব-ডিরেক্টরি অন্তর্ভুক্ত হবে যা src ডিরেক্টরির মধ্যে রয়েছে।
- exclude: এখানে আপনি নির্দিষ্ট ফাইল বা ডিরেক্টরি চিহ্নিত করতে পারেন যেগুলি কম্পাইলিং থেকে বাদ দেওয়া হবে। সাধারণত
node_modulesবা অন্যান্য লাইব্রেরি ডিরেক্টরি বাদ দেওয়া হয়।
"exclude": ["node_modules"]
৫. দ্বিতীয় মানের কনফিগারেশন অপশনস
- noEmit: TypeScript কোড চেক করবে কিন্তু কোনো আউটপুট তৈরি করবে না।
- declaration:
.d.tsডিক্লারেশন ফাইল তৈরি করবে, যা অন্যদের জন্য API কনট্রাক্ট সরবরাহ করবে। - lib: TypeScript কম্পাইলার কোন লাইব্রেরি সমর্থন করবে তা নির্ধারণ করে (যেমন
["dom", "es6"])। - allowJs: JavaScript ফাইলগুলোকে TypeScript প্রজেক্টে অন্তর্ভুক্ত করবে।
- moduleResolution: কম্পাইলারটি কিভাবে মডিউল রেজলভ করবে তা নির্ধারণ করে (যেমন
nodeবাclassic)।
৬. উদাহরণ: সম্পূর্ণ tsconfig.json
এটি একটি পূর্ণ tsconfig.json এর উদাহরণ যা সাধারণ ডেভেলপমেন্ট কনফিগারেশন অন্তর্ভুক্ত করে:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"outDir": "./dist",
"declaration": true
},
"include": ["src/**/*"],
"exclude": ["node_modules"]
}
৭. tsconfig.json কনফিগারেশন ফাইল তৈরি করা
tsconfig.json ফাইল তৈরি করার জন্য আপনি TypeScript CLI ব্যবহার করতে পারেন:
tsc --init
এটি একটি ডিফল্ট tsconfig.json ফাইল তৈরি করবে, যা আপনার প্রজেক্টে ব্যবহারের জন্য প্রস্তুত।
tsconfig.json ফাইলের সাহায্যে আপনি TypeScript প্রজেক্টের সমস্ত কনফিগারেশন সেটিংস কাস্টমাইজ করতে পারেন, যাতে আপনার কোডটি সঠিকভাবে কম্পাইল হয় এবং ডেভেলপমেন্টের সময় কোনো ধরনের সমস্যা না হয়।
Read more