সর্বোত্তম টাইপস্ক্রিপ্ট ডেভেলপমেন্টের জন্য tsconfig.json ফাইল বোঝা এবং কনফিগার করার একটি বিস্তারিত নির্দেশিকা, যেখানে উন্নত কম্পাইলার অপশন এবং সর্বোত্তম অনুশীলনগুলি আলোচনা করা হয়েছে।
টাইপস্ক্রিপ্ট কনফিগারেশন: TSConfig কম্পাইলার অপশনগুলি আয়ত্ত করা
tsconfig.json ফাইলটি যেকোনো টাইপস্ক্রিপ্ট প্রোজেক্টের কেন্দ্রবিন্দু। এটি নির্ধারণ করে যে টাইপস্ক্রিপ্ট কম্পাইলার (tsc) আপনার .ts ফাইলগুলিকে জাভাস্ক্রিপ্টে কীভাবে রূপান্তর করবে। কোডের গুণমান বজায় রাখতে, বিভিন্ন পরিবেশে সামঞ্জস্যতা নিশ্চিত করতে এবং বিল্ড প্রক্রিয়াকে অপ্টিমাইজ করতে একটি সু-কনফিগার করা tsconfig.json অত্যন্ত গুরুত্বপূর্ণ। এই বিস্তারিত নির্দেশিকাটি উন্নত tsconfig.json অপশনগুলিতে গভীরভাবে অনুসন্ধান করে, যা আপনাকে সর্বোচ্চ কার্যকারিতা এবং রক্ষণাবেক্ষণের জন্য আপনার টাইপস্ক্রিপ্ট প্রোজেক্টগুলিকে ফাইন-টিউন করতে সক্ষম করবে।
মৌলিক বিষয়গুলি বোঝা: কেন TSConfig গুরুত্বপূর্ণ
উন্নত অপশনগুলিতে যাওয়ার আগে, আসুন একবার দেখে নেওয়া যাক কেন tsconfig.json এত গুরুত্বপূর্ণ:
- কম্পাইলেশন নিয়ন্ত্রণ: এটি নির্দিষ্ট করে যে কোন ফাইলগুলি আপনার প্রোজেক্টে অন্তর্ভুক্ত করা উচিত এবং সেগুলি কীভাবে কম্পাইল করা উচিত।
- টাইপ চেকিং: এটি টাইপ চেকিংয়ের নিয়ম এবং কঠোরতা নির্ধারণ করে, যা ডেভেলপমেন্ট চক্রের শুরুতে ত্রুটি ধরতে সহায়তা করে।
- আউটপুট নিয়ন্ত্রণ: এটি লক্ষ্য জাভাস্ক্রিপ্ট সংস্করণ, মডিউল সিস্টেম এবং আউটপুট ডিরেক্টরি নির্ধারণ করে।
- IDE ইন্টিগ্রেশন: এটি কোড সম্পূর্ণতা, ত্রুটি হাইলাইট করা এবং রিফ্যাক্টরিংয়ের মতো বৈশিষ্ট্যগুলির জন্য IDE-গুলিকে (যেমন VS Code, WebStorm, ইত্যাদি) মূল্যবান তথ্য সরবরাহ করে।
একটি tsconfig.json ফাইল ছাড়া, টাইপস্ক্রিপ্ট কম্পাইলার ডিফল্ট সেটিংস ব্যবহার করবে, যা সমস্ত প্রোজেক্টের জন্য উপযুক্ত নাও হতে পারে। এর ফলে অপ্রত্যাশিত আচরণ, সামঞ্জস্যতার সমস্যা এবং একটি আদর্শের চেয়ে কম ডেভেলপমেন্ট অভিজ্ঞতা হতে পারে।
আপনার TSConfig তৈরি করা: একটি দ্রুত শুরু
একটি tsconfig.json ফাইল তৈরি করতে, আপনার প্রোজেক্টের রুট ডিরেক্টরিতে নিম্নলিখিত কমান্ডটি চালান:
tsc --init
এটি কিছু সাধারণ অপশন সহ একটি মৌলিক tsconfig.json ফাইল তৈরি করবে। এরপর আপনি আপনার প্রোজেক্টের নির্দিষ্ট প্রয়োজনীয়তা পূরণের জন্য এই ফাইলটি কাস্টমাইজ করতে পারেন।
মূল কম্পাইলার অপশন: একটি বিস্তারিত ওভারভিউ
tsconfig.json ফাইলে একটি compilerOptions অবজেক্ট থাকে, যেখানে আপনি টাইপস্ক্রিপ্ট কম্পাইলার কনফিগার করেন। আসুন কিছু গুরুত্বপূর্ণ এবং সাধারণত ব্যবহৃত অপশনগুলি অন্বেষণ করা যাক:
target
এই অপশনটি কম্পাইল করা জাভাস্ক্রিপ্ট কোডের জন্য ECMAScript টার্গেট সংস্করণ নির্দিষ্ট করে। এটি নির্ধারণ করে যে কম্পাইলার কোন জাভাস্ক্রিপ্ট বৈশিষ্ট্যগুলি ব্যবহার করবে, লক্ষ্য পরিবেশের (যেমন, ব্রাউজার, Node.js) সাথে সামঞ্জস্যতা নিশ্চিত করে। সাধারণ মানগুলির মধ্যে রয়েছে ES5, ES6 (ES2015), ES2017, ES2018, ES2019, ES2020, ES2021, ES2022, ESNext। ESNext ব্যবহার করলে সর্বশেষ সমর্থিত ECMAScript বৈশিষ্ট্যগুলিকে লক্ষ্য করা হবে।
উদাহরণ:
"compilerOptions": {
"target": "ES2020"
}
এই কনফিগারেশনটি কম্পাইলারকে ECMAScript 2020 এর সাথে সামঞ্জস্যপূর্ণ জাভাস্ক্রিপ্ট কোড তৈরি করার নির্দেশ দেবে।
module
এই অপশনটি কম্পাইল করা জাভাস্ক্রিপ্ট কোডে ব্যবহার করার জন্য মডিউল সিস্টেম নির্দিষ্ট করে। সাধারণ মানগুলির মধ্যে রয়েছে CommonJS, AMD, System, UMD, ES6 (ES2015), ES2020, এবং ESNext। মডিউল সিস্টেমের পছন্দ লক্ষ্য পরিবেশ এবং ব্যবহৃত মডিউল লোডারের (যেমন, Node.js, Webpack, Browserify) উপর নির্ভর করে।
উদাহরণ:
"compilerOptions": {
"module": "CommonJS"
}
এই কনফিগারেশনটি Node.js প্রোজেক্টগুলির জন্য উপযুক্ত, যা সাধারণত CommonJS মডিউল সিস্টেম ব্যবহার করে।
lib
এই অপশনটি কম্পাইলেশন প্রক্রিয়াতে অন্তর্ভুক্ত করার জন্য লাইব্রেরি ফাইলগুলির সেট নির্দিষ্ট করে। এই লাইব্রেরি ফাইলগুলি বিল্ট-ইন জাভাস্ক্রিপ্ট API এবং ব্রাউজার APIগুলির জন্য টাইপ ডেফিনিশন সরবরাহ করে। সাধারণ মানগুলির মধ্যে রয়েছে ES5, ES6, ES7, DOM, WebWorker, ScriptHost, এবং আরও অনেক কিছু।
উদাহরণ:
"compilerOptions": {
"lib": ["ES2020", "DOM"]
}
এই কনফিগারেশনটি ECMAScript 2020 এবং DOM API-এর জন্য টাইপ ডেফিনিশন অন্তর্ভুক্ত করে, যা ব্রাউজার-ভিত্তিক প্রোজেক্টগুলির জন্য অপরিহার্য।
allowJs
এই অপশনটি টাইপস্ক্রিপ্ট কম্পাইলারকে টাইপস্ক্রিপ্ট ফাইলের পাশাপাশি জাভাস্ক্রিপ্ট ফাইল কম্পাইল করার অনুমতি দেয়। জাভাস্ক্রিপ্ট প্রোজেক্টকে টাইপস্ক্রিপ্টে স্থানান্তরিত করার সময় বা বিদ্যমান জাভাস্ক্রিপ্ট কোডবেসের সাথে কাজ করার সময় এটি কার্যকর হতে পারে।
উদাহরণ:
"compilerOptions": {
"allowJs": true
}
এই অপশনটি সক্রিয় থাকলে, কম্পাইলার .ts এবং .js উভয় ফাইলই প্রক্রিয়া করবে।
checkJs
এই অপশনটি জাভাস্ক্রিপ্ট ফাইলগুলির জন্য টাইপ চেকিং সক্ষম করে। যখন allowJs এর সাথে একত্রিত হয়, তখন এটি টাইপস্ক্রিপ্টকে আপনার জাভাস্ক্রিপ্ট কোডে সম্ভাব্য টাইপ ত্রুটিগুলি সনাক্ত করতে অনুমতি দেয়।
উদাহরণ:
"compilerOptions": {
"allowJs": true,
"checkJs": true
}
এই কনফিগারেশনটি টাইপস্ক্রিপ্ট এবং জাভাস্ক্রিপ্ট উভয় ফাইলের জন্য টাইপ চেকিং সরবরাহ করে।
jsx
এই অপশনটি নির্দিষ্ট করে যে JSX সিনট্যাক্স (React এবং অন্যান্য ফ্রেমওয়ার্কে ব্যবহৃত) কীভাবে রূপান্তরিত হওয়া উচিত। সাধারণ মানগুলির মধ্যে রয়েছে preserve, react, react-native, এবং react-jsx। preserve JSX সিনট্যাক্সকে যেমন আছে তেমন রাখে, react এটিকে React.createElement কলগুলিতে রূপান্তর করে, react-native React Native ডেভেলপমেন্টের জন্য, এবং react-jsx এটিকে JSX ফ্যাক্টরি ফাংশনগুলিতে রূপান্তর করে। react-jsxdev ডেভেলপমেন্টের উদ্দেশ্যে ব্যবহৃত হয়।
উদাহরণ:
"compilerOptions": {
"jsx": "react"
}
এই কনফিগারেশনটি React প্রোজেক্টগুলির জন্য উপযুক্ত, যা JSX কে React.createElement কলগুলিতে রূপান্তরিত করে।
declaration
এই অপশনটি আপনার টাইপস্ক্রিপ্ট কোডের জন্য ডিক্লারেশন ফাইল (.d.ts) তৈরি করে। ডিক্লারেশন ফাইলগুলি আপনার কোডের জন্য টাইপ তথ্য সরবরাহ করে, যা অন্যান্য টাইপস্ক্রিপ্ট প্রোজেক্ট বা জাভাস্ক্রিপ্ট প্রোজেক্টগুলিকে সঠিক টাইপ চেকিং সহ আপনার কোড ব্যবহার করতে অনুমতি দেয়।
উদাহরণ:
"compilerOptions": {
"declaration": true
}
এই কনফিগারেশনটি কম্পাইল করা জাভাস্ক্রিপ্ট ফাইলগুলির পাশাপাশি .d.ts ফাইল তৈরি করবে।
declarationMap
এই অপশনটি তৈরি হওয়া ডিক্লারেশন ফাইলগুলির জন্য সোর্স ম্যাপ ফাইল (.d.ts.map) তৈরি করে। ডিক্লারেশন ফাইলগুলির সাথে কাজ করার সময় সোর্স ম্যাপগুলি ডিবাগার এবং অন্যান্য সরঞ্জামগুলিকে মূল টাইপস্ক্রিপ্ট সোর্স কোডে ফিরে যেতে অনুমতি দেয়।
উদাহরণ:
"compilerOptions": {
"declaration": true,
"declarationMap": true
}
sourceMap
এই অপশনটি কম্পাইল করা জাভাস্ক্রিপ্ট কোডের জন্য সোর্স ম্যাপ ফাইল (.js.map) তৈরি করে। ব্রাউজার বা অন্যান্য পরিবেশে ডিবাগ করার সময় সোর্স ম্যাপগুলি ডিবাগার এবং অন্যান্য সরঞ্জামগুলিকে মূল টাইপস্ক্রিপ্ট সোর্স কোডে ফিরে যেতে অনুমতি দেয়।
উদাহরণ:
"compilerOptions": {
"sourceMap": true
}
outFile
এই অপশনটি সমস্ত আউটপুট ফাইলকে একটি একক ফাইলে একত্রিত করে এবং নির্গত করে। এটি সাধারণত ব্রাউজার-ভিত্তিক অ্যাপ্লিকেশনগুলির জন্য কোড বান্ডলিংয়ের জন্য ব্যবহৃত হয়।
উদাহরণ:
"compilerOptions": {
"outFile": "dist/bundle.js"
}
outDir
এই অপশনটি কম্পাইল করা জাভাস্ক্রিপ্ট ফাইলগুলির জন্য আউটপুট ডিরেক্টরি নির্দিষ্ট করে। যদি নির্দিষ্ট করা না হয়, তাহলে কম্পাইলার আউটপুট ফাইলগুলিকে সোর্স ফাইলগুলির মতো একই ডিরেক্টরিতে রাখবে।
উদাহরণ:
"compilerOptions": {
"outDir": "dist"
}
এই কনফিগারেশনটি কম্পাইল করা জাভাস্ক্রিপ্ট ফাইলগুলিকে dist ডিরেক্টরিতে রাখবে।
rootDir
এই অপশনটি টাইপস্ক্রিপ্ট প্রোজেক্টের রুট ডিরেক্টরি নির্দিষ্ট করে। কম্পাইলার এই ডিরেক্টরিটি মডিউল নামগুলি সমাধান করতে এবং আউটপুট ফাইলের পাথ তৈরি করতে ব্যবহার করে। এটি বিশেষত জটিল প্রোজেক্ট কাঠামোর জন্য কার্যকর।
উদাহরণ:
"compilerOptions": {
"rootDir": "src"
}
removeComments
এই অপশনটি কম্পাইল করা জাভাস্ক্রিপ্ট কোড থেকে কমেন্টগুলি সরিয়ে দেয়। এটি আউটপুট ফাইলগুলির আকার কমাতে সাহায্য করতে পারে।
উদাহরণ:
"compilerOptions": {
"removeComments": true
}
noEmitOnError
এই অপশনটি কম্পাইলারকে জাভাস্ক্রিপ্ট ফাইল নির্গত করা থেকে বিরত রাখে যদি কোনও টাইপ ত্রুটি সনাক্ত করা হয়। এটি নিশ্চিত করে যে শুধুমাত্র বৈধ কোড তৈরি হয়।
উদাহরণ:
"compilerOptions": {
"noEmitOnError": true
}
strict
এই অপশনটি সমস্ত কঠোর টাইপ-চেকিং অপশন সক্ষম করে। নতুন প্রোজেক্টগুলির জন্য এটি অত্যন্ত সুপারিশ করা হয় কারণ এটি সম্ভাব্য ত্রুটিগুলি ধরতে এবং সর্বোত্তম অনুশীলনগুলি প্রয়োগ করতে সহায়তা করে।
উদাহরণ:
"compilerOptions": {
"strict": true
}
স্ট্রিক্ট মোড সক্রিয় করা নিম্নলিখিত অপশনগুলি সক্রিয় করার সমতুল্য:
noImplicitAnynoImplicitThisalwaysStrictstrictNullChecksstrictFunctionTypesstrictBindCallApplynoImplicitReturnsnoFallthroughCasesInSwitch
esModuleInterop
এই অপশনটি CommonJS এবং ES মডিউলগুলির মধ্যে ইন্টারঅপারেবিলিটি সক্ষম করে। এটি আপনাকে ES মডিউলগুলিতে CommonJS মডিউল এবং বিপরীতভাবে আমদানি করার অনুমতি দেয়।
উদাহরণ:
"compilerOptions": {
"esModuleInterop": true
}
forceConsistentCasingInFileNames
এই অপশনটি ফাইলের নামগুলিতে সামঞ্জস্যপূর্ণ কেসিং প্রয়োগ করে। এটি ক্রস-প্ল্যাটফর্ম সামঞ্জস্যতার জন্য গুরুত্বপূর্ণ, কারণ কিছু অপারেটিং সিস্টেম কেস-সেন্সিটিভ হলেও অন্যগুলি নয়।
উদাহরণ:
"compilerOptions": {
"forceConsistentCasingInFileNames": true
}
baseUrl এবং paths
এই অপশনগুলি আপনাকে মডিউল রেজোলিউশন কনফিগার করার অনুমতি দেয়। baseUrl নন-রিলেটিভ মডিউল নামগুলি সমাধান করার জন্য বেস ডিরেক্টরি নির্দিষ্ট করে, এবং paths আপনাকে কাস্টম মডিউল উপনাম সংজ্ঞায়িত করার অনুমতি দেয়।
উদাহরণ:
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@components/*": ["src/components/*"],
"@utils/*": ["src/utils/*"]
}
}
এই কনফিগারেশনটি আপনাকে @components/MyComponent এবং @utils/myFunction এর মতো উপনাম ব্যবহার করে মডিউল আমদানি করার অনুমতি দেয়।
উন্নত কনফিগারেশন: মৌলিক বিষয়গুলির বাইরে
এখন, আসুন কিছু উন্নত tsconfig.json অপশনগুলি অন্বেষণ করা যাক যা আপনার টাইপস্ক্রিপ্ট ডেভেলপমেন্ট অভিজ্ঞতাকে আরও বাড়িয়ে তুলতে পারে।
ইনক্রিমেন্টাল কম্পাইলেশন
টাইপস্ক্রিপ্ট ইনক্রিমেন্টাল কম্পাইলেশন সমর্থন করে, যা বড় প্রোজেক্টগুলির জন্য বিল্ড প্রক্রিয়াকে উল্লেখযোগ্যভাবে গতি বাড়াতে পারে। ইনক্রিমেন্টাল কম্পাইলেশন সক্ষম করতে, incremental অপশনটিকে true তে সেট করুন এবং একটি tsBuildInfoFile অপশন নির্দিষ্ট করুন।
উদাহরণ:
"compilerOptions": {
"incremental": true,
"tsBuildInfoFile": ".tsbuildinfo"
}
tsBuildInfoFile অপশনটি সেই ফাইলটি নির্দিষ্ট করে যেখানে কম্পাইলার বিল্ড তথ্য সংরক্ষণ করবে। এই তথ্য পরবর্তী বিল্ডগুলির সময় কোন ফাইলগুলি পুনরায় কম্পাইল করা দরকার তা নির্ধারণ করতে ব্যবহৃত হয়।
প্রোজেক্ট রেফারেন্স
প্রোজেক্ট রেফারেন্স আপনাকে আপনার কোডকে ছোট, আরও পরিচালনাযোগ্য প্রোজেক্টগুলিতে কাঠামোবদ্ধ করতে অনুমতি দেয়। এটি বড় কোডবেসের জন্য বিল্ডের সময় এবং কোড সংগঠনকে উন্নত করতে পারে। এই ধারণার একটি ভালো উপমা হল একটি মাইক্রোসার্ভিস আর্কিটেকচার - প্রতিটি পরিষেবা স্বাধীন, তবে ইকো-সিস্টেমের অন্যগুলির উপর নির্ভরশীল।
প্রোজেক্ট রেফারেন্স ব্যবহার করতে, আপনাকে প্রতিটি প্রোজেক্টের জন্য একটি পৃথক tsconfig.json ফাইল তৈরি করতে হবে। তারপর, মূল tsconfig.json ফাইলে, আপনি references অপশন ব্যবহার করে যে প্রোজেক্টগুলি রেফারেন্স করা উচিত তা নির্দিষ্ট করতে পারেন।
উদাহরণ:
{
"compilerOptions": {
...
},
"references": [
{ "path": "./project1" },
{ "path": "./project2" }
]
}
এই কনফিগারেশনটি নির্দিষ্ট করে যে বর্তমান প্রোজেক্টটি ./project1 এবং ./project2 ডিরেক্টরিগুলিতে অবস্থিত প্রোজেক্টগুলির উপর নির্ভরশীল।
কাস্টম ট্রান্সফরমার
কাস্টম ট্রান্সফরমারগুলি আপনাকে টাইপস্ক্রিপ্ট কম্পাইলারের আউটপুট পরিবর্তন করার অনুমতি দেয়। এটি বিভিন্ন উদ্দেশ্যে ব্যবহার করা যেতে পারে, যেমন কাস্টম কোড রূপান্তর যোগ করা, অব্যবহৃত কোড অপসারণ করা, অথবা নির্দিষ্ট পরিবেশের জন্য আউটপুট অপ্টিমাইজ করা। এগুলি সাধারণত i18n আন্তর্জাতিকীকরণ এবং স্থানীয়করণের কাজগুলির জন্য ব্যবহৃত হয়।
কাস্টম ট্রান্সফরমার ব্যবহার করতে, আপনাকে একটি পৃথক জাভাস্ক্রিপ্ট ফাইল তৈরি করতে হবে যা একটি ফাংশন এক্সপোর্ট করে যা কম্পাইলার দ্বারা কল করা হবে। তারপর, আপনি tsconfig.json ফাইলে plugins অপশন ব্যবহার করে ট্রান্সফরমার ফাইলটি নির্দিষ্ট করতে পারেন।
উদাহরণ:
{
"compilerOptions": {
...
"plugins": [
{ "transform": "./transformer.js" }
]
}
}
এই কনফিগারেশনটি নির্দিষ্ট করে যে ./transformer.js ফাইলটিকে একটি কাস্টম ট্রান্সফরমার হিসাবে ব্যবহার করা উচিত।
ফাইল, অন্তর্ভুক্ত এবং বাদ দিন
compilerOptions এর বাইরে, tsconfig.json এর অন্যান্য রুট-লেভেলের অপশনগুলি নির্ধারণ করে যে কোন ফাইলগুলি কম্পাইলেশন প্রক্রিয়াতে অন্তর্ভুক্ত হবে:
- files: কম্পাইলেশনে অন্তর্ভুক্ত করার জন্য ফাইল পাথগুলির একটি অ্যারে।
- include: অন্তর্ভুক্ত করার জন্য ফাইলগুলি নির্দিষ্ট করে এমন glob প্যাটার্নের একটি অ্যারে।
- exclude: বাদ দেওয়ার জন্য ফাইলগুলি নির্দিষ্ট করে এমন glob প্যাটার্নের একটি অ্যারে।
এই অপশনগুলি টাইপস্ক্রিপ্ট কম্পাইলার দ্বারা কোন ফাইলগুলি প্রক্রিয়া করা হয় তার উপর সুনির্দিষ্ট নিয়ন্ত্রণ সরবরাহ করে। উদাহরণস্বরূপ, আপনি কম্পাইলেশন প্রক্রিয়া থেকে টেস্ট ফাইল বা তৈরি হওয়া কোড বাদ দিতে পারেন।
উদাহরণ:
{
"compilerOptions": { ... },
"include": ["src/**/*"],
"exclude": ["node_modules", "dist", "**/*.spec.ts"]
}
এই কনফিগারেশনটি src ডিরেক্টরি এবং এর সাবডিরেক্টরিগুলির সমস্ত ফাইল অন্তর্ভুক্ত করে, যখন node_modules এবং dist ডিরেক্টরিগুলির ফাইলগুলি, এবং .spec.ts এক্সটেনশন সহ যে কোনও ফাইল (সাধারণত ইউনিট টেস্টের জন্য ব্যবহৃত) বাদ দেয়।
নির্দিষ্ট পরিস্থিতির জন্য কম্পাইলার অপশন
সর্বোত্তম ফলাফল অর্জনের জন্য বিভিন্ন প্রোজেক্টের বিভিন্ন কম্পাইলার সেটিংসের প্রয়োজন হতে পারে। আসুন কিছু নির্দিষ্ট পরিস্থিতি এবং সেগুলির জন্য প্রস্তাবিত কম্পাইলার সেটিংস দেখি।
ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্ট
ওয়েব অ্যাপ্লিকেশন ডেভেলপমেন্টের জন্য, আপনি সাধারণত নিম্নলিখিত কম্পাইলার সেটিংস ব্যবহার করতে চাইবেন:
{
"compilerOptions": {
"target": "ESNext",
"module": "ESNext",
"moduleResolution": "Node",
"jsx": "react-jsx",
"esModuleInterop": true,
"strict": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"sourceMap": true,
"outDir": "dist"
},
"include": ["src/**/*"],
"exclude": ["node_modules"]
}
এই সেটিংসগুলি React বা অন্যান্য অনুরূপ ফ্রেমওয়ার্ক ব্যবহার করে আধুনিক ওয়েব অ্যাপ্লিকেশনগুলির জন্য উপযুক্ত। এগুলি সর্বশেষ ECMAScript বৈশিষ্ট্যগুলিকে লক্ষ্য করে, ES মডিউল ব্যবহার করে এবং কঠোর টাইপ চেকিং সক্ষম করে।
Node.js ব্যাকএন্ড ডেভেলপমেন্ট
Node.js ব্যাকএন্ড ডেভেলপমেন্টের জন্য, আপনি সাধারণত নিম্নলিখিত কম্পাইলার সেটিংস ব্যবহার করতে চাইবেন:
{
"compilerOptions": {
"target": "ESNext",
"module": "CommonJS",
"esModuleInterop": true,
"strict": true,
"sourceMap": true,
"outDir": "dist",
"resolveJsonModule": true
},
"include": ["src/**/*"],
"exclude": ["node_modules"]
}
এই সেটিংসগুলি CommonJS মডিউল সিস্টেম ব্যবহার করে Node.js অ্যাপ্লিকেশনগুলির জন্য উপযুক্ত। এগুলি সর্বশেষ ECMAScript বৈশিষ্ট্যগুলিকে লক্ষ্য করে, কঠোর টাইপ চেকিং সক্ষম করে এবং আপনাকে মডিউল হিসাবে JSON ফাইল আমদানি করার অনুমতি দেয়।
লাইব্রেরি ডেভেলপমেন্ট
লাইব্রেরি ডেভেলপমেন্টের জন্য, আপনি সাধারণত নিম্নলিখিত কম্পাইলার সেটিংস ব্যবহার করতে চাইবেন:
{
"compilerOptions": {
"target": "ES5",
"module": "UMD",
"declaration": true,
"declarationMap": true,
"sourceMap": true,
"outDir": "dist",
"strict": true,
"esModuleInterop": true
},
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}
এই সেটিংসগুলি এমন লাইব্রেরি তৈরির জন্য উপযুক্ত যা ব্রাউজার এবং Node.js উভয় পরিবেশে ব্যবহার করা যেতে পারে। এগুলি উন্নত ডেভেলপার অভিজ্ঞতার জন্য ডিক্লারেশন ফাইল এবং সোর্স ম্যাপ তৈরি করে।
TSConfig ব্যবস্থাপনার জন্য সর্বোত্তম অনুশীলন
আপনার tsconfig.json ফাইলগুলি পরিচালনা করার সময় মনে রাখার মতো কিছু সর্বোত্তম অনুশীলন এখানে দেওয়া হলো:
- একটি বেস কনফিগারেশন দিয়ে শুরু করুন: সাধারণ সেটিংস সহ একটি বেস
tsconfig.jsonফাইল তৈরি করুন এবং তারপরেextendsঅপশন ব্যবহার করে অন্যান্য প্রোজেক্টে এটি প্রসারিত করুন। - স্ট্রিক্ট মোড ব্যবহার করুন: সম্ভাব্য ত্রুটিগুলি ধরতে এবং সর্বোত্তম অনুশীলনগুলি প্রয়োগ করতে স্ট্রিক্ট মোড সক্ষম করুন।
- মডিউল রেজোলিউশন কনফিগার করুন: আমদানি ত্রুটি এড়াতে মডিউল রেজোলিউশন সঠিকভাবে কনফিগার করুন।
- প্রোজেক্ট রেফারেন্স ব্যবহার করুন: প্রোজেক্ট রেফারেন্স ব্যবহার করে আপনার কোডকে ছোট, আরও পরিচালনাযোগ্য প্রোজেক্টগুলিতে কাঠামোবদ্ধ করুন।
- আপনার
tsconfig.jsonফাইল আপ টু ডেট রাখুন: নিয়মিত আপনারtsconfig.jsonফাইল পর্যালোচনা করুন এবং আপনার প্রোজেক্ট বিকশিত হওয়ার সাথে সাথে এটি আপডেট করুন। - আপনার
tsconfig.jsonফাইল ভার্সন নিয়ন্ত্রণ করুন: আপনার অন্যান্য সোর্স কোডের সাথে আপনারtsconfig.jsonফাইলটি ভার্সন কন্ট্রোলে কমিট করুন। - আপনার কনফিগারেশন ডকুমেন্ট করুন: প্রতিটি অপশনের উদ্দেশ্য ব্যাখ্যা করতে আপনার
tsconfig.jsonফাইলে কমেন্ট যোগ করুন।
উপসংহার: টাইপস্ক্রিপ্ট কনফিগারেশন আয়ত্ত করা
tsconfig.json ফাইলটি টাইপস্ক্রিপ্ট কম্পাইলার কনফিগার করতে এবং বিল্ড প্রক্রিয়া নিয়ন্ত্রণ করার জন্য একটি শক্তিশালী টুল। উপলব্ধ অপশনগুলি বোঝা এবং সর্বোত্তম অনুশীলনগুলি অনুসরণ করার মাধ্যমে, আপনি সর্বোত্তম কার্যকারিতা, রক্ষণাবেক্ষণযোগ্যতা এবং সামঞ্জস্যের জন্য আপনার টাইপস্ক্রিপ্ট প্রোজেক্টগুলিকে ফাইন-টিউন করতে পারেন। এই নির্দেশিকাটি tsconfig.json ফাইলে উপলব্ধ উন্নত অপশনগুলির একটি বিস্তারিত ওভারভিউ সরবরাহ করেছে, যা আপনাকে আপনার টাইপস্ক্রিপ্ট ডেভেলপমেন্ট ওয়ার্কফ্লোর সম্পূর্ণ নিয়ন্ত্রণ নিতে সক্ষম করবে। সবচেয়ে আপ-টু-ডেট তথ্য এবং নির্দেশনার জন্য সর্বদা অফিসিয়াল টাইপস্ক্রিপ্ট ডকুমেন্টেশন দেখুন। আপনার প্রোজেক্টগুলি বিকশিত হওয়ার সাথে সাথে, এই শক্তিশালী কনফিগারেশন সরঞ্জামগুলির আপনার বোঝাপড়া এবং ব্যবহারও বাড়ানো উচিত। শুভ কোডিং!