📦 Package Managers — কী, কেন এবং কোনটা ব্যবহার করবে?
JavaScript/Node.js প্রজেক্টে বাইরের library ও tool ব্যবহার করতে Package Manager অপরিহার্য। এটি ছাড়া আধুনিক web development কল্পনাই করা যায় না।
🔷 Package Manager কী?
Package Manager হলো এমন একটি টুল যা তোমার প্রজেক্টে বাইরের JavaScript library (package) ইনস্টল, আপডেট, মুছে ফেলা এবং সংস্করণ নিয়ন্ত্রণ করে। তুমি নিজে কোড লেখার পাশাপাশি অন্যদের তৈরি হাজার হাজার উপকারী library ব্যবহার করতে পারো — যেমন React, Express, Lodash, Axios ইত্যাদি। Package Manager এই সব library একটি কমান্ডে নামিয়ে দেয়।
npmjs.com হলো JavaScript-এর সবচেয়ে বড় package registry — এখানে ২০ লক্ষেরও বেশি package আছে। npm, pnpm, Yarn, Bun — এই সব manager ওই একই registry থেকেই package নামায়।
Package Manager ছাড়া কী সমস্যা হত?
| Package Manager | তৈরি সাল | বিশেষত্ব | গতি |
|---|---|---|---|
| npm | ২০১০ | সবচেয়ে পুরনো, Node.js-এর সাথে আসে, বিশাল registry | মাঝারি |
| pnpm | ২০১৭ | disk space বাঁচায়, hard links ব্যবহার, monorepo-বান্ধব | দ্রুত |
| Yarn | ২০১৬ | Facebook তৈরি, reliable lockfile, workspaces | দ্রুত |
| Bun | ২০২২ | All-in-one runtime+manager, Zig-এ লেখা, সবচেয়ে দ্রুত | 🚀 সবচেয়ে দ্রুত |
🔷 Package Manager কীভাবে কাজ করে?
সব package manager-এর কাজের ধাপ মূলত একই:
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
⚖️ npm vs pnpm vs Yarn vs Bun — বিস্তারিত তুলনা
কোনটা ব্যবহার করবে সেটা নির্ভর করে তোমার প্রজেক্টের চাহিদার উপর।
🔷 সার্বিক তুলনা
| বিষয় | npm | pnpm | Yarn Classic | Bun |
|---|---|---|---|---|
| Install গতি | মাঝারি | দ্রুত | দ্রুত | 🚀 সবচেয়ে দ্রুত |
| Disk Space | বেশি ব্যবহার | কম (hard links) | মাঝারি | কম (global cache) |
| Lockfile | package-lock.json | pnpm-lock.yaml | yarn.lock | bun.lock |
| node_modules | flat structure | virtual store + symlinks | flat hoisted | flat / isolated |
| Workspaces | ✅ আছে | ✅ শক্তিশালী | ✅ প্রথম দিকের | ✅ আছে |
| Runtime | ❌ শুধু manager | ❌ শুধু manager | ❌ শুধু manager | ✅ Runtime+Test+Build |
| Node.js compatibility | 100% | 100% | 100% | ~95%+ |
| শেখার সহজতা | ⭐⭐⭐ সহজ | ⭐⭐ মাঝারি | ⭐⭐ মাঝারি | ⭐⭐⭐ সহজ |
| জনপ্রিয়তা | 🏆 সর্বোচ্চ | বাড়ছে দ্রুত | মাঝারি | বাড়ছে দ্রুত |
কোনটা বেছে নেবে?
| তুমি যদি... | তাহলে ব্যবহার করো |
|---|---|
| এইমাত্র শুরু করছো | npm — Node.js-এর সাথেই আসে, কোনো install নেই |
| দ্রুত install ও disk space বাঁচাতে চাও | pnpm — monorepo-তেও সেরা |
| Facebook/Meta-এর ecosystem-এ কাজ করো | Yarn — বিশেষত workspaces-এর জন্য |
| সর্বোচ্চ গতি চাও, TypeScript সরাসরি চালাতে চাও | Bun — সব-in-one toolkit |
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
🟥 npm — Node Package Manager সম্পূর্ণ গাইড
npm হলো JavaScript-এর সবচেয়ে পুরনো ও জনপ্রিয় package manager। Node.js ইনস্টল করলেই npm আসে। ২০ লক্ষেরও বেশি package নিয়ে বিশ্বের বৃহত্তম software registry।
🔷 npm কী এবং কীভাবে তৈরি হলো?
npm (Node Package Manager) ২০১০ সালে Isaac Z. Schlueter তৈরি করেন। এটি একসাথে তিনটি জিনিস:
| সাল | ঘটনা |
|---|---|
| ২০১০ | npm v1 — Node.js-এর সাথে প্রথম release। |
| ২০১৪ | npm v2 — nested node_modules, সমস্যা শুরু। |
| ২০১৬ | npm v3 — flat node_modules structure, Yarn-এর competition শুরু। |
| ২০১৭ | npm v5 — package-lock.json যোগ (Yarn-এর জবাব)। |
| ২০২০ | GitHub/Microsoft npm কিনে নেয় $7.5 billion-এ। |
| ২০২১ | npm v7 — Workspaces, peer deps auto-install। |
| ২০২৩+ | npm v10 — provenance statements, OIDC, আরো দ্রুত। |
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
⚙️ npm ইনস্টল ও প্রথম Setup
🔷 Node.js ও npm ইনস্টল করা
npm আলাদাভাবে ইনস্টল করতে হয় না — Node.js ইনস্টল করলেই npm আসে।
সরাসরি ইনস্টল
nvm দিয়ে (Professional পদ্ধতি)
🔷 প্রজেক্ট শুরু — npm init
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
📄 package.json — প্রজেক্টের পরিচয়পত্র
package.json হলো প্রজেক্টের সবচেয়ে গুরুত্বপূর্ণ ফাইল। সব metadata, dependencies ও scripts এখানে থাকে।
🔷 package.json-এর সব ক্ষেত্র বিস্তারিত
dependencies-এর চার ধরন
| ধরন | উদ্দেশ্য | উদাহরণ | কখন install হয়? |
|---|---|---|---|
| dependencies | Production-এ app চালাতে লাগে | express, react, axios | সবসময় |
| devDependencies | শুধু development-এ লাগে | jest, webpack, eslint | --production ছাড়া |
| peerDependencies | Plugin/lib-এর জন্য host-এ থাকা দরকার | react (plugin-এর জন্য) | npm v7+ auto-install |
| optionalDependencies | না থাকলেও চলে | fsevents (macOS-specific) | চেষ্টা করে, fail হলে skip |
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
📥 npm দিয়ে Dependencies ম্যানেজ করা
🔷 npm install — Package ইনস্টল করা
CI/CD-এর জন্য npm ci
🔷 Package আপডেট ও মুছা
🔷 npx — Install না করে চালানো
npx দিয়ে package globally install না করেই একবার চালানো যায়।
npm v5.2+ থেকে npx built-in।
npx pkg = npm exec -- pkg — দুটো একই কাজ করে।npm exec হলো newer, official syntax।
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
⚡ npm scripts — Task Automation
npm scripts দিয়ে project-এর সব task একটি কমান্ডে করা যায়। build, test, lint — সব কিছু।
🔷 Scripts সেটআপ ও চালানো
🔷 Lifecycle Scripts — সম্পূর্ণ তালিকা
| Script নাম | কখন চলে |
|---|---|
preinstall |
npm install শুরুর আগে |
install / postinstall |
install সম্পন্নের পরে |
preuninstall / postuninstall |
uninstall-এর আগে/পরে |
prestart / start / poststart |
npm start-এর আগে/সময়/পরে |
prerestart / restart / postrestart |
npm restart-এ |
prestop / stop / poststop |
npm stop-এ |
pretest / test / posttest |
npm test-এ |
prepublishOnly |
শুধু npm publish-এর আগে |
prepare |
npm install এবং npm publish-এর আগে |
prepublish |
⚠️ deprecated — prepare ব্যবহার করো |
prepack / postpack |
npm pack ও publish-এ |
preversion / version / postversion |
npm version-এ |
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
🔢 Versioning ও Semantic Versioning (SemVer)
🔷 SemVer — MAJOR.MINOR.PATCH বিস্তারিত
Version Range Notation বিস্তারিত
| Notation | অর্থ | উদাহরণ range |
|---|---|---|
"4.18.2" |
Exact version | শুধু 4.18.2 |
"^4.18.2" |
MAJOR lock — compatible | 4.18.2 ≤ x < 5.0.0 |
"~4.18.2" |
MINOR lock — approximately | 4.18.2 ≤ x < 4.19.0 |
">=4.18.2" |
Greater or equal | 4.18.2 এবং তার বেশি সব |
">=4.18.2 <5" |
Range | 4.18.2 থেকে 5 এর আগে |
"4.18.x" |
Wildcard | 4.18.0 থেকে 4.18.x |
"4.x" |
Major wildcard | 4.0.0 থেকে 4.x.x |
"*" |
Any version | সর্বশেষ (বিপজ্জনক!) |
"latest" |
Latest tag | সর্বশেষ stable |
"1.2.3 || 2.0.0" |
OR condition | 1.2.3 অথবা 2.0.0 |
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
🔒 package-lock.json — Deterministic Installs
🔷 package-lock.json কেন দরকার?
package.json-এ version range থাকে (^4.18.2), তাই আজ install করলে 4.18.2 আসতে পারে, কাল
4.19.0।
package-lock.json exact version lock করে — পুরো টিমের এবং CI/CD-এর install হুবহু একই হবে।
→ package-lock.json → সবসময় Git-এ commit করো
→ node_modules/ → সবসময় .gitignore-এ রাখো
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
🏷️ Scopes ও Scoped Packages
Scoped package হলো @namespace/package-name format-এর package। Organization বা personal branding-এর জন্য।
🔷 Scope কী এবং কীভাবে ব্যবহার করবে?
Public vs Private Package
| বিষয় | Public Unscoped | Public Scoped | Private Scoped |
|---|---|---|---|
| নাম format | my-pkg |
@user/my-pkg |
@org/my-pkg |
| দেখতে পাবে | সবাই | সবাই | শুধু authorized |
| Free? | ✅ বিনামূল্যে | ✅ বিনামূল্যে | 💰 paid plan |
| publish | npm publish |
npm publish --access public |
npm publish |
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
🌐 npm Registry ও Package Publishing
🔷 Package Publish করা
🔷 npm pack — Package Tarball তৈরি
npm pack publish করার আগে package preview করতে কাজে লাগে।
এটি একটি .tgz ফাইল তৈরি করে।
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
🔐 npm Security — audit, 2FA, Provenance
🔷 npm audit — Vulnerability Check
npm audit installed packages-এর known security vulnerabilities চেক করে npm registry-র
security database-এর সাথে তুলনা করে।
🔷 npm 2FA — Two-Factor Authentication
🔷 Provenance ও ECDSA Signatures
Provenance হলো package কোথা থেকে তৈরি হয়েছে তার cryptographic proof। GitHub Actions থেকে publish করলে automatically যোগ হয়।
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
⚙️ npm config ও .npmrc
🔷 npm config management
🔷 Access Tokens — CI/CD Integration
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
🏗️ npm Workspaces — Monorepo
🔷 Workspaces Setup ও ব্যবহার
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
🔧 npm-এর অতিরিক্ত গুরুত্বপূর্ণ কমান্ড
🔷 npm link — Local Development
Local-এ একটি package তৈরি করছো এবং অন্য project-এ test করতে চাও?
npm link দিয়ে publish না করেই local package ব্যবহার করা যায়।
🔷 npm dedupe ও npm prune
🔷 npm diff — Package পার্থক্য দেখো
🔷 npm fund ও npm doctor
🔷 npm pkg — package.json সরাসরি Edit করো
🔷 Organizations — Team Package Management
🔷 npm cache ম্যানেজমেন্ট
🔷 npm profile — Account Settings CLI-তে
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
🟦 pnpm — Performant npm
pnpm হলো npm-এর দ্রুততম ও সবচেয়ে disk-efficient বিকল্প। Content-addressable store দিয়ে disk space বাঁচায়।
🔷 pnpm কেন তৈরি হলো ও কী সুবিধা?
২০১৭ সালে Zoltan Kochan pnpm তৈরি করেন। npm-এর দুটো বড় সমস্যা ছিল: disk space অপচয় (প্রতিটি প্রজেক্টে একই package আলাদাভাবে থাকত) এবং ghost dependencies (package.json-এ নেই কিন্তু import করা যেত)।
| সুবিধা | বিবরণ |
|---|---|
| Disk space বাঁচায় | Global content-addressable store — একই package একবার download |
| দ্রুত install | cache থেকে hard link — no copying |
| Strict node_modules | package.json-এ না থাকলে import করা যায় না (ghost dependency নেই) |
| Monorepo-বান্ধব | শক্তিশালী workspaces, filtering |
| npm compatible | package.json, .npmrc সব কাজ করে |
npm-এ flat node_modules structure-এ তুমি এমন package import করতে পারো যা তোমার package.json-এ নেই কিন্তু কোনো dependency-র dependency হিসেবে install হয়েছে। এটি একটি বড় bug — production-এ সেই dependency update/remove হলে তোমার code ভাঙবে। pnpm এটি সম্পূর্ণ বন্ধ করে।
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
⚙️ pnpm ইনস্টল করা
🔷 pnpm Installation
"packageManager": "pnpm@9.0.0" লিখলে
টিমের সবাই automatically সেই exact version ব্যবহার করবে।
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
💻 pnpm কমান্ড সমূহ
🔷 npm vs pnpm কমান্ড তুলনা
| npm | pnpm | কাজ |
|---|---|---|
npm install |
pnpm install |
সব dependency install |
npm install express |
pnpm add express |
package যোগ করো |
npm install -D jest |
pnpm add -D jest |
devDependency যোগ |
npm install -g nodemon |
pnpm add -g nodemon |
global install |
npm uninstall express |
pnpm remove express |
package মুছো |
npm update |
pnpm update |
packages update |
npm run build |
pnpm build |
script চালাও |
npx create-vite |
pnpm dlx create-vite |
one-time execute |
npm ci |
pnpm install --frozen-lockfile |
exact lockfile install |
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
🗄️ pnpm Content-addressable Store
🔷 Store কীভাবে কাজ করে?
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
🏗️ pnpm Workspaces — Monorepo
🔷 pnpm Workspace Setup
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
⚙️ pnpm Config — .npmrc ও pnpm-workspace.yaml
🔷 pnpm Configuration
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
🧶 Yarn — Fast, Reliable, Secure
Facebook (Meta) ২০১৬ সালে npm-এর সীমাবদ্ধতা দূর করতে Yarn তৈরি করেন। Workspaces, lockfile reliability এবং offline installation-এ পথিকৃৎ।
🔷 Yarn-এর ইতিহাস ও বৈশিষ্ট্য
২০১৬ সালে Facebook engineer-রা npm v2-এর সমস্যা (ধীর গতি, inconsistent installs) সমাধানে Yarn তৈরি করেন।
Yarn প্রথম package manager যা deterministic lockfile (yarn.lock) এনেছিল —
পরে npm-ও package-lock.json যোগ করে।
Yarn Classic (v1) এবং Yarn Berry (v2, v3, v4) — দুটো ভিন্ন জিনিস। এই সেকশনে Yarn Classic (v1) কভার করা হয়েছে কারণ এটি এখনো widely used।
| সুবিধা | বিবরণ |
|---|---|
| Deterministic installs | yarn.lock দিয়ে সবার install হুবহু একই |
| Parallel download | একসাথে অনেক package download করে — দ্রুত |
| Offline mode | Cache থেকে install — internet ছাড়াও কাজ করে |
| Workspaces | npm-এর আগে Workspaces এনেছিল, monorepo-র জন্য |
| Checksum verification | প্রতিটি package-এর integrity verify করে |
| Clean output | npm-এর চেয়ে পরিষ্কার ও কম verbose output |
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
⚙️ Yarn ইনস্টল করা
🔷 Yarn Installation (Classic v1)
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
💻 Yarn কমান্ড সমূহ
🔷 Yarn-এর প্রধান কমান্ড
| npm | Yarn | কাজ |
|---|---|---|
npm install |
yarn |
সব install |
npm install express |
yarn add express |
package যোগ |
npm install -D jest |
yarn add -D jest |
devDep যোগ |
npm install -g |
yarn global add |
global install |
npm uninstall |
yarn remove |
মুছো |
npm update |
yarn upgrade |
update |
npm run build |
yarn build |
script চালাও |
npx |
yarn dlx |
one-time execute |
🔷 Global Package Management
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
🔒 yarn.lock — Deterministic Lockfile
🔷 yarn.lock কেন npm-এর চেয়ে ভালো ছিল?
Yarn-ই প্রথম একটি human-readable, flat lockfile এনেছিল। npm-এর package-lock.json complex JSON হলেও yarn.lock পড়তে সহজ।
node_modules/ .gitignore-এ রাখো।
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
🏗️ Yarn Workspaces
🔷 Yarn Workspaces Setup
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
⚙️ Yarn Config ও .yarnrc
🔷 Yarn Configuration
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
🥟 Bun — All-in-One JavaScript Toolkit
Bun হলো JavaScript ecosystem-এর সবচেয়ে নতুন ও দ্রুত টুল। Runtime, Package Manager, Test Runner ও Bundler — একটিতেই সব।
🔷 Bun কী এবং কেন এত বিশেষ?
২০২২ সালে Jarred Sumner (Oven-sh) Bun তৈরি করেন। Zig ভাষায় লেখা এবং V8 (Chrome)-এর পরিবর্তে JavaScriptCore (Safari) engine ব্যবহার করে। এই দুটো কারণে Bun অবিশ্বাস্য রকম দ্রুত।
→ Package install: npm-এর চেয়ে ৩০x দ্রুত
→ Test runner: Jest-এর চেয়ে ১০-৩০x দ্রুত
→ Startup time: Node.js-এর চেয়ে ৩-৫x দ্রুত
→ TypeScript: transpile ছাড়াই সরাসরি চলে
| বৈশিষ্ট্য | Node.js + npm | Bun |
|---|---|---|
| Runtime engine | V8 (Google) | JavaScriptCore (Apple/Safari) |
| Written in | C++ | Zig + C++ |
| TypeScript | Compile করতে হয় | সরাসরি চলে |
| JSX | Babel/esbuild লাগে | সরাসরি চলে |
| Node.js compat. | 100% (এটাই Node) | ~95%+ (চলতে থাকছে) |
| Web APIs | Partial | Fetch, WebSocket, ReadableStream built-in |
→ Legacy project যা Node.js-specific behavior-এ নির্ভরশীল
→ Native module (C++ addon) heavy project
→ Production-এ অত্যন্ত critical system যেখানে ৯৫%+ compat. যথেষ্ট নয়
→ শুরুতে: Node.js + npm শেখো, তারপর Bun explore করো
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
⚙️ Bun ইনস্টল করা
🔷 Bun Installation
প্রজেক্ট শুরু করা
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
📦 Bun Package Manager
Bun-এর package manager npm-compatible। npm, yarn, pnpm-এর lockfile পড়তে পারে।
🔷 Package Management কমান্ড
npm-এর সাথে তুলনা
| npm | Bun | কাজ |
|---|---|---|
npm install |
bun install |
সব install |
npm install express |
bun add express |
package যোগ |
npm install -D jest |
bun add -D jest |
devDep যোগ |
npm install -g nodemon |
bun add -g nodemon |
global |
npm uninstall |
bun remove |
মুছো |
npm ci |
bun ci |
frozen install |
npx |
bunx |
one-time run |
🔷 bun.lock — Bun Lockfile
Bun তিনটি lockfile format সাপোর্ট করে। এটি npm/yarn/pnpm থেকে migration সহজ করে।
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
⚡ Bun Runtime ও Script Runner
Bun শুধু package manager নয় — এটি Node.js-compatible runtime। TypeScript ও JSX সরাসরি চালানো যায়।
🔷 JavaScript ও TypeScript চালানো
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
🧪 Bun Test Runner
Bun-এর built-in test runner Jest-compatible। Jest থেকে migrate করতে সহজ।
🔷 bun test — Jest-compatible Testing
import { describe, it, expect } from "bun:test"
এবং bun test কমান্ড দিলে test চলবে।
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
📦 Bun Bundler — bun build
Bun-এ built-in bundler আছে। webpack/esbuild/rollup আলাদাভাবে install করতে হয় না।
🔷 bun build — Bundle করা
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
🏗️ Bun Workspaces — Monorepo
🔷 Bun Workspace Setup
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!
📋 সম্পূর্ণ Command Reference — npm · pnpm · Yarn · Bun
চারটি package manager-এর প্রতিটি গুরুত্বপূর্ণ কমান্ড বিষয় অনুযায়ী ভাগ করে একসাথে দেওয়া হয়েছে — চট করে খুঁজে নাও।
🔷 ১. ইনস্টল ও প্রজেক্ট শুরু
| কাজ | npm | pnpm | Yarn | Bun |
|---|---|---|---|---|
| Manager ইনস্টল | Node.js-এ আসে | npm i -g pnpm |
npm i -g yarn |
curl -fsSL https://bun.com/install | bash |
| Version দেখো | npm --version |
pnpm --version |
yarn --version |
bun --version |
| নিজেকে update | npm install -g npm@latest |
pnpm self-update |
yarn set version classic |
bun upgrade |
| প্রজেক্ট init | npm init -y |
pnpm init |
yarn init -y |
bun init -y |
| Template দিয়ে তৈরি | npx create-vite my-app |
pnpm dlx create-vite my-app |
yarn dlx create-vite my-app |
bunx create-vite my-app |
| Environment check | npm doctor |
— | — | — |
🔷 ২. Dependencies ইনস্টল করা
| কাজ | npm | pnpm | Yarn | Bun |
|---|---|---|---|---|
| সব dependencies install | npm install |
pnpm install |
yarn |
bun install |
| Frozen install (CI/CD) | npm ci |
pnpm install --frozen-lockfile |
yarn --frozen-lockfile |
bun ci |
| Production only | npm install --production |
pnpm install --prod |
yarn install --production |
bun install --production |
| Dependency যোগ | npm install <pkg> |
pnpm add <pkg> |
yarn add <pkg> |
bun add <pkg> |
| devDependency যোগ | npm install -D <pkg> |
pnpm add -D <pkg> |
yarn add -D <pkg> |
bun add -D <pkg> |
| optionalDependency যোগ | npm install -O <pkg> |
pnpm add -O <pkg> |
yarn add -O <pkg> |
bun add --optional <pkg> |
| peerDependency যোগ | npm install --save-peer <pkg> |
pnpm add --save-peer <pkg> |
yarn add -P <pkg> |
bun add --peer <pkg> |
| Global install | npm install -g <pkg> |
pnpm add -g <pkg> |
yarn global add <pkg> |
bun add -g <pkg> |
| নির্দিষ্ট version | npm install <pkg>@4.0.0 |
pnpm add <pkg>@4.0.0 |
yarn add <pkg>@4.0.0 |
bun add <pkg>@4.0.0 |
| Git repo থেকে | npm install github:user/repo |
pnpm add github:user/repo |
yarn add user/repo |
bun add github:user/repo |
| Local path থেকে | npm install ../my-pkg |
pnpm add ../my-pkg |
yarn add file:../my-pkg |
bun add ../my-pkg |
🔷 ৩. Package মুছা ও আপডেট
| কাজ | npm | pnpm | Yarn | Bun |
|---|---|---|---|---|
| Package মুছো | npm uninstall <pkg> |
pnpm remove <pkg> |
yarn remove <pkg> |
bun remove <pkg> |
| Global মুছো | npm uninstall -g <pkg> |
pnpm remove -g <pkg> |
yarn global remove <pkg> |
bun remove -g <pkg> |
| সব update | npm update |
pnpm update |
yarn upgrade |
bun update |
| Latest-এ update | npm install <pkg>@latest |
pnpm update --latest |
yarn upgrade --latest |
bun add <pkg>@latest |
| Interactive update | npx npm-check-updates -u |
pnpm update -i |
yarn upgrade-interactive |
— |
| Outdated দেখো | npm outdated |
pnpm outdated |
yarn outdated |
bun outdated |
🔷 ৪. Package তথ্য ও তালিকা
| কাজ | npm | pnpm | Yarn | Bun |
|---|---|---|---|---|
| Installed list (top) | npm ls --depth=0 |
pnpm list --depth=0 |
yarn list --depth=0 |
bun pm ls |
| Global list | npm ls -g --depth=0 |
pnpm ls -g |
yarn global list |
— |
| Package info | npm info <pkg> |
pnpm info <pkg> |
yarn info <pkg> |
— |
| কেন installed? | npm why <pkg> |
pnpm why <pkg> |
yarn why <pkg> |
— |
| Registry search | npm search <term> |
— | — | — |
| Docs/homepage খোলো | npm docs <pkg> |
— | — | — |
🔷 ৫. Script ও Execute
| কাজ | npm | pnpm | Yarn | Bun |
|---|---|---|---|---|
| Custom script চালাও | npm run <script> |
pnpm <script> |
yarn <script> |
bun <script> |
| start script | npm start |
pnpm start |
yarn start |
bun start |
| test script | npm test |
pnpm test |
yarn test |
bun test |
| Script-এ args pass | npm run build -- --watch |
pnpm build -- --watch |
yarn build --watch |
bun build --watch |
| One-time execute (npx) | npx <pkg> |
pnpm dlx <pkg> |
yarn dlx <pkg> |
bunx <pkg> |
| Local binary চালাও | npx jest |
pnpm exec jest |
yarn exec jest |
bunx jest |
| File সরাসরি চালাও | node file.js |
— | — | bun file.ts (TS সরাসরি) |
🔷 ৬. Version ও Publishing
| কাজ | npm | pnpm | Yarn | Bun |
|---|---|---|---|---|
| Version bump (patch) | npm version patch |
pnpm version patch |
yarn version --patch |
bun version patch |
| Version bump (minor) | npm version minor |
pnpm version minor |
yarn version --minor |
bun version minor |
| Version bump (major) | npm version major |
pnpm version major |
yarn version --major |
bun version major |
| Package publish | npm publish |
pnpm publish |
yarn publish |
bun publish |
| Public scoped publish | npm publish --access public |
pnpm publish --access public |
yarn publish --access public |
bun publish --access public |
| Tag দিয়ে publish | npm publish --tag beta |
pnpm publish --tag beta |
yarn publish --tag beta |
— |
| Tarball preview | npm pack --dry-run |
pnpm pack --dry-run |
yarn pack --dry-run |
bun pack |
| Deprecate করো | npm deprecate <pkg> "msg" |
— | — | — |
| Dist-tag যোগ | npm dist-tag add <pkg>@ver tag |
— | — | — |
| Login | npm login |
pnpm login |
yarn login |
bun login |
| Logout | npm logout |
pnpm logout |
yarn logout |
— |
| Provenance publish | npm publish --provenance |
— | — | — |
🔷 ৭. Security ও Audit
| কাজ | npm | pnpm | Yarn | Bun |
|---|---|---|---|---|
| Vulnerability check | npm audit |
pnpm audit |
yarn audit |
— |
| Auto fix | npm audit fix |
pnpm audit --fix |
— | — |
| Force fix (breaking ok) | npm audit fix --force |
— | — | — |
| Signature verify | npm audit signatures |
— | — | — |
| 2FA চালু | npm profile enable-2fa auth-and-writes |
— | — | — |
| OTP সহ publish | npm publish --otp=123456 |
pnpm publish --otp=123456 |
yarn publish --otp=123456 |
— |
| Integrity check | npm ci (lockfile verify) |
pnpm install --frozen-lockfile |
yarn check |
bun install --frozen-lockfile |
🔷 ৮. Lockfile, Config ও Cache
| বিষয় | npm | pnpm | Yarn | Bun |
|---|---|---|---|---|
| Lockfile নাম | package-lock.json |
pnpm-lock.yaml |
yarn.lock |
bun.lockb / bun.lock |
| Config ফাইল | .npmrc |
.npmrc + pnpm-workspace.yaml |
.yarnrc |
bunfig.toml |
| Registry সেট করো | npm config set registry <url> |
pnpm config set registry <url> |
yarn config set registry <url> |
bunfig.toml-এ |
| Registry দেখো | npm config get registry |
pnpm config get registry |
yarn config get registry |
— |
| সব config দেখো | npm config list |
pnpm config list |
yarn config list |
— |
| Config সম্পাদনা | npm config edit |
— | — | — |
| Cache location | npm config get cache |
pnpm store path |
yarn cache dir |
— |
| Cache মুছো | npm cache clean --force |
pnpm store prune |
yarn cache clean |
bun pm cache rm |
| Cache verify | npm cache verify |
pnpm store status |
— | — |
🔷 ৯. npm-এর বিশেষ কমান্ড
এই কমান্ডগুলো শুধু npm-এ আছে অথবা npm-এ সবচেয়ে বেশি ব্যবহৃত:
| কমান্ড | কাজ |
|---|---|
npm link |
Local package globally symlink করো (development-এ test করতে) |
npm link <pkg> |
Symlinked local package project-এ যোগ করো |
npm unlink <pkg> |
Link মুছো |
npm pack |
Package-এর .tgz tarball তৈরি করো |
npm pack --dry-run |
কোন files publish হবে দেখো (publish না করে) |
npm dedupe |
node_modules-এ duplicate packages কমাও |
npm prune |
package.json-এ নেই এমন package মুছো |
npm prune --production |
devDependencies মুছো (production deploy-এর আগে) |
npm diff <pkg> |
Installed vs latest version-এর পার্থক্য দেখো |
npm diff <v1> <v2> |
দুটো নির্দিষ্ট version-এর পার্থক্য |
npm fund |
Installed packages-এর funding info দেখো |
npm fund <pkg> |
নির্দিষ্ট package-এর funding |
npm doctor |
npm environment health check |
npm pkg get <field> |
package.json-এর field দেখো |
npm pkg set <field>=<val> |
package.json-এর field সেট করো |
npm pkg delete <field> |
package.json-এর field মুছো |
npm explain <pkg> |
কেন এই package installed তা দেখাও |
npm query .workspace |
সব workspace-এর list |
npm ping |
Registry-র সাথে connection test |
npm prefix |
npm prefix directory দেখো |
npm find-dupes |
Duplicate packages খুঁজো |
npm profile get |
npmjs.com account profile দেখো |
npm profile set <k> <v> |
Profile field আপডেট করো |
npm org ls <@org> |
Organization-এর সব member দেখো |
npm org set <@org> <user> <role> |
Member-এর role সেট করো |
npm access list packages <@org> |
Org-এর সব package দেখো |
npm dist-tag add <pkg>@ver tag |
Dist tag যোগ করো |
npm dist-tag ls <pkg> |
সব dist tag দেখো |
🔷 ১০. Workspaces — Monorepo কমান্ড
| কাজ | npm | pnpm | Yarn | Bun |
|---|---|---|---|---|
| সব workspace install | npm install (root-এ) |
pnpm install |
yarn install |
bun install |
| Workspace-এ pkg যোগ | npm install react -w apps/web |
pnpm add react --filter apps/web |
yarn workspace apps/web add react |
bun add react --filter apps/web |
| নির্দিষ্ট ws script | npm run build -w apps/web |
pnpm build --filter apps/web |
yarn workspace apps/web build |
bun run build --filter apps/web |
| সব ws-এ script | npm run build -ws |
pnpm build --filter '*' |
yarn workspaces run build |
bun run build --filter '*' |
| Workspace list | npm query .workspace |
pnpm list -r |
yarn workspaces info |
— |
🔷 ১১. SemVer Version Range — চটজলদি গাইড
| package.json-এ | অর্থ | কোন version নেবে? |
|---|---|---|
"4.18.2" |
Exact | শুধু 4.18.2 |
"^4.18.2" |
MAJOR lock (default) | 4.18.2 ≤ x < 5.0.0 |
"~4.18.2" |
MINOR lock | 4.18.2 ≤ x < 4.19.0 |
">=4.18.2" |
Greater or equal | 4.18.2 থেকে সর্বোচ্চ |
">=4.0.0 <5.0.0" |
Range | 4.x.x মাত্র |
"4.x" |
Major wildcard | 4.0.0 থেকে 4.x.x |
"*" |
Any ⚠️ | সর্বশেষ (বিপজ্জনক) |
"latest" |
Tag | সর্বশেষ stable |
"1.2.3 || 2.0.0" |
OR | 1.2.3 অথবা 2.0.0 |
🔷 ১২. package.json — গুরুত্বপূর্ণ Field সমূহ
| Field | কাজ | উদাহরণ |
|---|---|---|
name |
Package-এর নাম | "my-app" |
version |
Current version (SemVer) | "1.2.3" |
private |
Accidental publish বন্ধ | true |
main |
CJS entry point | "dist/index.js" |
module |
ESM entry point | "dist/index.mjs" |
exports |
Conditional exports (modern) | {".": {"import": ...}} |
type |
ESM/CJS mode | "module" বা "commonjs" |
bin |
CLI executable | {"my-cli": "./bin/cli.js"} |
files |
Publish-এ কোন files যাবে | ["dist/", "src/"] |
scripts |
npm run দিয়ে চালানো task | {"build": "webpack"} |
dependencies |
Production packages | {"express": "^4.18.2"} |
devDependencies |
Dev-only packages | {"jest": "^29.0.0"} |
peerDependencies |
Host-এ থাকা দরকার | {"react": ">=17"} |
engines |
Node.js version requirement | {"node": ">=18.0.0"} |
workspaces |
Monorepo workspace paths | ["packages/*"] |
license |
License type | "MIT" |
keywords |
npmjs.com search-এ | ["web", "nodejs"] |
repository |
Source code URL | {"type": "git", "url": "..."} |
🔷 সবচেয়ে বেশি ব্যবহৃত — Daily Cheatsheet
→ শিখছো / শুরু করছো: npm — কোনো extra install নেই, সব জায়গায় সাপোর্ট
→ গতি ও disk space: pnpm — monorepo-তে সেরা, strict node_modules
→ Stable ও reliable: Yarn — yarn.lock সবার আগে, workspaces pioneer
→ All-in-one toolkit: Bun — TypeScript সরাসরি, test+bundle built-in, সবচেয়ে দ্রুত
মাশাআল্লাহ! 🎉 এই section শেষ করেছেন — অসাধারণ! প্রজেক্টের কোডগুলো দেখে দেখে VS Code-এ নিজে টাইপ করুন — copy-paste করবেন না। কারণ হাতে টাইপ করলেই স্মৃতিতে গেঁথে যায়, মাথায় থাকে, বাস্তব অভিজ্ঞতা হয়, সাহস বাড়ে। শুধু পড়ে বা দেখে কেউ কখনো developer হয়নি। চলুন পড়ি! হাতে কলমে শিখি!