Aurelia প্রজেক্টের স্ট্রাকচার সাধারণত বেশ সিম্পল এবং মডুলার হয়। এটি src/ ফোল্ডারকে কেন্দ্র করে গড়ে ওঠে, যেখানে সমস্ত সোর্স কোড এবং ভিউ ফাইল থাকে। এ ছাড়া, node_modules/, dist/ এবং অন্যান্য কনফিগারেশন ফাইলও থাকে। নিচে একটি typical Aurelia প্রজেক্টের স্ট্রাকচার এবং তার প্রতিটি উপাদানের ব্যাখ্যা দেওয়া হলো।
১. src/ (Source ফোল্ডার)
এই ফোল্ডারটি আপনার প্রজেক্টের মূল সোর্স কোড ধারণ করে। এটি এমন ফোল্ডার যেখানে আপনার অ্যাপ্লিকেশনের সমস্ত কাস্টম কোড এবং ভিউ টেমপ্লেট থাকবে।
মূল ফাইলগুলো:
- main.js/ts (এন্ট্রি পয়েন্ট)
- এই ফাইলটি অ্যাপ্লিকেশনটি শুরু করার জন্য প্রয়োজনীয় কনফিগারেশন এবং মডিউল ইনস্টল করে। এখানে সাধারণত
aurelia.bootstrap()ফাংশন কল করা হয় যা অ্যাপ্লিকেশনটি লোড করে।
- এই ফাইলটি অ্যাপ্লিকেশনটি শুরু করার জন্য প্রয়োজনীয় কনফিগারেশন এবং মডিউল ইনস্টল করে। এখানে সাধারণত
- app.html (মূল ভিউ টেমপ্লেট)
- এটি আপনার অ্যাপ্লিকেশনের মূল HTML টেমপ্লেট। এখানে আপনি UI এর কন্টেন্ট তৈরি করবেন এবং অন্যান্য কম্পোনেন্ট এবং বাটন ইত্যাদি ব্যবহার করবেন।
- app.js/ts (ভিউমডেল)
- এটি
app.htmlএর জন্য একটি জাভাস্ক্রিপ্ট/টাইপস্ক্রিপ্ট ফাইল, যা অ্যাপ্লিকেশনের ডেটা এবং কার্যক্রম ধারণ করে। এটি ভিউ টেমপ্লেটের সাথে ডেটা বাইন্ডিংয়ের জন্য ব্যবহৃত হয়।
- এটি
অন্যান্য ফোল্ডার:
- components/ (কম্পোনেন্টস)
- আপনি আপনার প্রজেক্টে বিভিন্ন UI কম্পোনেন্ট তৈরি করলে, সেগুলো এই ফোল্ডারে রাখা হয়। প্রতিটি কম্পোনেন্টের জন্য আলাদা ফোল্ডার থাকতে পারে, যেখানে থাকবে HTML, CSS এবং জাভাস্ক্রিপ্ট ফাইল।
- resources/ (সাধারণ রিসোর্স)
- কম্পোনেন্ট এবং অন্যান্য রিসোর্স (যেমন, স্টাইলশিট, ইমেজ) এখানে রাখা হয়। এটি একটি শেয়ার্ড রিসোর্স ফোল্ডার, যেখানে অ্যাপ্লিকেশনের অন্যান্য অংশের জন্য প্রয়োজনীয় ফাইল রাখা হয়।
- styles/ (স্টাইল ফোল্ডার)
- এখানে অ্যাপ্লিকেশনের স্টাইলশিট (CSS বা SCSS ফাইল) রাখা হয়। আপনি সমস্ত অ্যাপ্লিকেশনের জন্য সাধারণ স্টাইল রিসোর্স বা স্কোপড স্টাইল ফাইলগুলো এখানে রাখতে পারেন।
২. node_modules/ (ডিপেনডেন্সি ফোল্ডার)
এই ফোল্ডারটি আপনার প্রজেক্টে ইনস্টল করা সমস্ত তৃতীয় পক্ষের লাইব্রেরি এবং প্যাকেজ ধারণ করে। এই ফোল্ডারটি npm install কমান্ড দিয়ে তৈরি হয় এবং এটি স্বয়ংক্রিয়ভাবে আপডেট হয় যখন আপনি নতুন ডিপেনডেন্সি ইনস্টল করেন।
৩. dist/ (ডিস্ট্রিবিউশন ফোল্ডার)
এই ফোল্ডারটি প্রোডাকশন বিল্ড ফাইল ধারণ করে। যখন আপনি au build কমান্ড দিয়ে অ্যাপ্লিকেশন বিল্ড করবেন, তখন সমস্ত কম্পাইলড এবং অপ্টিমাইজড ফাইল এই ফোল্ডারে চলে যাবে। এটি অ্যাপ্লিকেশনের প্রস্তুত ফাইল এবং প্যাকেজ থাকবে যা ক্লাউড বা সার্ভারে ডিপ্লয় করা যায়।
৪. package.json
এই ফাইলটি আপনার প্রজেক্টের মেটাডেটা এবং ডিপেনডেন্সি নির্ধারণ করে। এখানে অ্যাপ্লিকেশনের নাম, সংস্করণ, স্ক্রিপ্ট এবং ডিপেনডেন্সির তালিকা থাকে। এটি npm বা Yarn এর মাধ্যমে প্যাকেজ ম্যানেজমেন্ট পরিচালনা করে।
- dependencies: আপনার অ্যাপ্লিকেশনের চলমান ডিপেনডেন্সি যেমন, Aurelia framework, Bootstrap, ইত্যাদি।
- devDependencies: ডেভেলপমেন্ট পর্যায়ের প্যাকেজ, যেমন Webpack, Babel ইত্যাদি।
- scripts: বিভিন্ন স্ক্রিপ্ট যেমন,
npm run start,npm run buildইত্যাদি।
৫. aurelia_project/
এই ফোল্ডারটি Aurelia CLI এর কনফিগারেশন ফাইল ধারণ করে। এতে সাধারণত কিছু কনফিগারেশন ফাইল থাকে, যেমন:
- bundles.js: অ্যাপ্লিকেশনের bundling configuration। এটি সংক্ষেপিত এবং কমপ্যাক্ট ফাইল তৈরি করতে সাহায্য করে।
- build//*.js**: বিভিন্ন বিল্ড কনফিগারেশন ফাইল।
৬. webpack.config.js (যদি ব্যবহার করা হয়)
যদি আপনি Webpack ব্যবহার করেন, তাহলে এই ফাইলটি আপনার বিল্ড কনফিগারেশন এবং অ্যাপ্লিকেশনের লোডিং কনফিগারেশন ধারণ করবে। এতে entry, output, loaders এবং plugins সম্পর্কিত কনফিগারেশন থাকে।
উদাহরণস্বরূপ Aurelia প্রজেক্ট স্ট্রাকচার:
my-aurelia-app/
│
├── aurelia_project/ # Aurelia CLI কনফিগারেশন
│ ├── bundles.js # Bundle কনফিগারেশন
│ └── build/ # Build কনফিগারেশন
│
├── src/ # Source কোড
│ ├── app.html # মূল HTML টেমপ্লেট
│ ├── app.js # ভিউমডেল (JavaScript)
│ ├── main.js # প্রজেক্টের এন্ট্রি পয়েন্ট
│ ├── components/ # কম্পোনেন্ট ফোল্ডার
│ ├── resources/ # শেয়ার্ড রিসোর্স
│ └── styles/ # স্টাইল ফোল্ডার
│
├── node_modules/ # তৃতীয় পক্ষের লাইব্রেরি
│
├── dist/ # বিল্ড করা ফাইল
│
├── package.json # প্যাকেজ ম্যানেজমেন্ট ফাইল
├── webpack.config.js # Webpack কনফিগারেশন (যদি ব্যবহৃত হয়)
└── .gitignore # Git ignore ফাইল
উপসংহার
Aurelia প্রজেক্টের স্ট্রাকচার খুবই মডুলার এবং ক্লিন। এটি সহজে রক্ষণাবেক্ষণযোগ্য এবং স্কেলযোগ্য, কারণ অ্যাপ্লিকেশনের প্রতিটি অংশ আলাদা ফোল্ডারে রাখা হয়। এতে ডিপেনডেন্সি ম্যানেজমেন্ট, বিল্ড কনফিগারেশন এবং ফাইল গঠন সবকিছু সহজ হয়ে থাকে, যা ডেভেলপারদের কাজকে অনেক সহজ করে তোলে।
Read more