Node.jsBeginner
NPM — Node Package Manager
npm packages, scripts, lock file, semver, private packages — সম্পূর্ণ বাংলা গাইড।
20টি অংশবাংলা ভাষায়
npm হলো world-এর সবচেয়ে বড় software registry। এখানে 2 মিলিয়নেরও বেশি packages আছে যেগুলো আপনার project-এ সরাসরি ব্যবহার করা যায়।
Package Install করা
# dependencies install
npm install express
# version নির্দিষ্ট করে
npm install express@4.21.0
# devDependencies install
npm install --save-dev nodemon
# নির্দিষ্ট version range
npm install lodash@^4.17.0 # 4.17.x (minor updates)
npm install lodash@~4.17.0 # 4.17.0-4.17.x (patch updates)Package Remove করা
npm uninstall express
npm remove lodashScripts
package.json-এর scripts section-এ custom commands define করা যায়। এগুলো npm run <script-name> দিয়ে চালানো যায়।
package.json scriptsjson
json
{
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js",
"build": "tsc",
"test": "jest --coverage",
"lint": "eslint .",
"format": "prettier --write ."
}
}npm run dev # nodemon index.js চালাবে
npm start # node index.js চালাবে (run ছাড়া)
npm test # test run হবেpackage-lock.json
package-lock.json সব packages-এর exact version lock করে রাখে। যাতে সব developer-এর একই version ইনস্টল হয়। এটিকে version control-এ commit করুন।
Semantic Versioning (SemVer)
npm packages version MAJOR.MINOR.PATCH format-এ থাকে:
| Part | অর্থ | উদাহরণ |
|---|---|---|
| MAJOR | Breaking changes | 4.21.0 → 5.0.0 |
| MINOR | New features (backward compatible) | 4.21.0 → 4.22.0 |
| PATCH | Bug fixes | 4.21.0 → 4.21.1 |
^4.21.0 → 4.21.0 থেকে 5.0.0 এর আগে (minor + patch)
~4.21.0 → 4.21.0 থেকে 4.22.0 এর আগে (patch only)
4.21.0 → শুধু 4.21.0npm audit — Security Check
# vulnerability check
npm audit
# auto fix
npm audit fix
# force fix (breaking changes হতে পারে)
npm audit fix --forceUseful npm Commands
# outdated packages দেখুন
npm outdated
# global packages দেখুন
npm list -g --depth=0
# package search
npm search express
# package info
npm info express
# cache clean
npm cache clean --force
# npm login (publish করতে)
npm loginভালো অভ্যাস
node_modules ও .env ফাইলকে .gitignore-এ যোগ করুন। package-lock.json অবশ্যই version control-এ রাখুন।
শেষ প্যারায় নিজে practice করুন — কোড কপি করে নিজের এডিটরে চালিয়ে দেখুন।