Node.js Managing Dependencies

உங்கள் Node.js திட்டத்தின் சார்புகளை திறம்பட நிர்வகிக்க கற்றுக்கொள்ளுங்கள்

சார்பு மேலாண்மை என்றால் என்ன?

சார்பு மேலாண்மை என்பது உங்கள் பயன்பாட்டை சார்ந்திருக்கும் வெளிப்புற தொகுப்புகளைக் கண்காணித்தல், நிறுவுதல், புதுப்பித்தல் மற்றும் அகற்றுதல் ஆகும்.

இது உங்கள் பயன்பாடுகள் காலப்போக்கில் நிலையான, பாதுகாப்பான மற்றும் பராமரிக்கக்கூடியதாக இருக்க உதவுகிறது.

npm (Node Package Manager)

Node.js க்கான இயல்புநிலை தொகுப்பு மேலாளர்

Yarn

மாற்று தொகுப்பு மேலாளர்

pnpm

மற்றொரு பிரபலமான மாற்று

🔑 Node.js சார்பு மேலாண்மையின் முக்கிய கூறுகள்:

  • சார்புகளை அறிவிக்க package.json கோப்பு
  • சார்பு பதிப்பிற்கான பூட்டு கோப்புகள் (package-lock.json அல்லது yarn.lock)
  • தொகுப்புகளை நிறுவ, புதுப்பிக்க மற்றும் அகற்ற தொகுப்பு மேலாளர் கட்டளைகள்
  • பாதிப்புகளை அடையாளம் கண்டு சரிசெய்ய பாதுகாப்பு கருவிகள்

செமான்டிக் பதிப்பு மேலாண்மையைப் புரிந்துகொள்வது

Node.js தொகுப்புகள் செமான்டிக் பதிப்பு மேலாண்மையைப் (SemVer) பின்பற்றுகின்றன, மூன்று-பகுதி பதிப்பு எண்ணைப் பயன்படுத்துகின்றன: முக்கிய.சிறிய.பேட்ச்

முக்கிய

இணக்கமற்ற API மாற்றங்களுக்காக அதிகரிக்கப்படுகிறது

சிறிய

பின்னோக்கி இணக்கமான புதிய அம்சங்களுக்காக அதிகரிக்கப்படுகிறது

பேட்ச்

பின்னோக்கி இணக்கமான பிழை திருத்தங்களுக்காக அதிகரிக்கப்படுகிறது

சின்னம் எடுத்துக்காட்டு அர்த்தம்
^ ^2.8.1 2.x.x உடன் ஏதேனும், முக்கிய பதிப்பு மட்டும் பொருந்த வேண்டும் (2.8.1 அல்லது அதிகமானது)
~ ~2.8.1 2.8.x உடன் ஏதேனும், முக்கிய.சிறிய மட்டும் பொருந்த வேண்டும் (2.8.1 அல்லது அதிகமானது)
* * எந்த பதிப்பும் (உற்பத்திக்கு பரிந்துரைக்கப்படவில்லை)
>= >=2.8.1 பதிப்பு 2.8.1 அல்லது எந்த உயர்ந்த பதிப்பும்
எதுவும் இல்லை 2.8.1 சரியான பதிப்பு மட்டும்

எடுத்துக்காட்டு: வெவ்வேறு பதிப்பு விவரக்குறிப்புகள்

{
  "dependencies": {
    "express": "^2.8.1", // Any 2.x.x version (2.8.1 or higher)
    "lodash": "~2.8.1", // Any 2.8.x version (2.8.1 or higher)
    "moment": "2.8.1", // Exactly version 2.8.1
    "axios": ">=2.8.1", // Version 2.8.1 or any higher version
    "debug": "2.x" // Any version starting with 2
  }
}

சார்புகளை நிறுவுதல்

ஒரு Node.js திட்டத்தில் சார்புகளை நிறுவ பல வழிகள் உள்ளன:

அனைத்து சார்புகளையும் நிறுவுதல்

npm install

இந்த கட்டளை package.json கோப்பைப் படித்து அங்கு பட்டியலிடப்பட்டுள்ள அனைத்து சார்புகளையும் நிறுவுகிறது.

குறிப்பிட்ட தொகுப்பை நிறுவுதல்

npm install express

இது தொகுப்பின் சமீபத்திய பதிப்பை நிறுவுகிறது மற்றும் அதை உங்கள் package.json இல் சார்புகளில் சேர்க்கிறது.

குறிப்பிட்ட பதிப்பை நிறுவுதல்

npm install express@4.17.1

package.json இல் சேமிக்காமல் நிறுவுதல்

npm install express --no-save

உலகளாவியமாக நிறுவுதல்

npm install -g nodemon

உலகளாவிய தொகுப்புகள் திட்டத்தின் node_modules அடைவில் இல்லாமல் கணினி முழுவதும் நிறுவப்படும்.

சார்புகளின் வகைகள்

Node.js திட்டங்கள் பல வகையான சார்புகளைக் கொண்டிருக்கலாம், ஒவ்வொன்றும் வெவ்வேறு நோக்கத்திற்காக உதவுகின்றன:

வழக்கமான சார்புகள்

npm install express --save
# or simply
npm install express

உற்பத்தியில் இயங்க உங்கள் பயன்பாட்டிற்குத் தேவையான தொகுப்புகள் இவை.

உருவாக்க சார்புகள்

npm install jest --save-dev
# or
npm install jest -D

இவை உள்ளூர் உருவாக்கம் மற்றும் சோதனைக்கு மட்டுமே தேவைப்படும் தொகுப்புகள், சோதனை கட்டமைப்புகள் அல்லது கட்டுமான கருவிகள் போன்றவை.

சக சார்புகள்

{
  "name": "my-plugin",
  "version": "1.0.0",
  "peerDependencies": {
    "react": "^17.0.0"
  }
}

மற்ற தொகுப்புகளுடன் இணக்கத்தைக் குறிக்க package.json இல் குறிப்பிடப்பட்டது, உண்மையில் அவற்றைச் சேர்த்தல் இல்லாமல்.

விருப்ப சார்புகள்

npm install fancy-feature --save-optional
# or
npm install fancy-feature -O

இந்த தொகுப்புகள் செயல்பாட்டை மேம்படுத்துகின்றன, ஆனால் முக்கிய பயன்பாடு வேலை செய்ய தேவையில்லை.

💡 உதவிக்குறிப்பு:

உற்பத்தியில் தேவைப்படும் தொகுப்புகளுக்கு சார்புகளைப் பயன்படுத்தவும், உருவாக்கம் அல்லது சோதனைக்கு மட்டுமே தேவைப்படும் தொகுப்புகளுக்கு devDependencies ஐப் பயன்படுத்தவும்.

தொகுப்பு பூட்டு கோப்புகள்

பூட்டு கோப்புகள் ஒவ்வொரு தொகுப்பின் சரியான பதிப்பு மற்றும் அதன் சார்புகளைப் பதிவு செய்வதன் மூலம் வெவ்வேறு சூழல்களில் சீரான நிறுவல்களை உறுதி செய்கின்றன.

package-lock.json (npm)

npm node_modules மரத்தை அல்லது package.json ஐ மாற்றும் போது இந்த கோப்பு தானாகவே உருவாக்கப்படும்.

{
  "name": "my-app",
  "version": "1.0.0",
  "lockfileVersion": 3,
  "requires": true,
  "packages": {
    "node_modules/express": {
      "version": "4.18.2",
      "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
      "dependencies": {
        "accepts": "~1.3.8",
        "array-flatten": "1.1.1"
      }
    }
  }
}

yarn.lock (Yarn)

Yarn இன் பூட்டு கோப்பு இதே போன்ற நோக்கத்திற்காக உதவுகிறது ஆனால் வெவ்வேறு வடிவத்தைக் கொண்டுள்ளது.

⚠️ முக்கியமானது:

உங்கள் குழு மற்றும் விரிவாக்க சூழல்களில் சீரான நிறுவல்களை உறுதி செய்ய உங்கள் பூட்டு கோப்புகளை எப்போதும் பதிப்பு கட்டுப்பாட்டிற்கு அர்ப்பணிக்கவும்.

சார்புகளைப் புதுப்பித்தல்

காலாவதியான தொகுப்புகளைச் சரிபார்க்கவும்

npm outdated

குறிப்பிட்ட தொகுப்பைப் புதுப்பிக்கவும்

npm update express

அனைத்து தொகுப்புகளையும் புதுப்பிக்கவும்

npm update

npm ஐப் புதுப்பித்தல்

npm install -g npm@latest

npm-check-updates பயன்படுத்துதல்

புதுப்பிப்புகளில் அதிக கட்டுப்பாட்டிற்கு, நீங்கள் npm-check-updates தொகுப்பைப் பயன்படுத்தலாம்:

# Install npm-check-updates globally
npm install -g npm-check-updates

# Check for updates
ncu

# Update package.json
ncu -u

# Install updated packages
npm install

பாதுகாப்பு மற்றும் தணிக்கை

உங்கள் சார்புகளைத் தணிக்கை செய்யுங்கள்

npm audit

பாதுகாப்பு பாதிப்புகளை சரிசெய்யவும்

npm audit fix

அனைத்து சிக்கல்களையும் சரிசெய்யவும் (கவனத்துடன் பயன்படுத்தவும்)

npm audit fix --force

அறியப்பட்ட பாதிப்புகளைச் சரிபார்க்கவும்

npm audit

# Or using npx with the 'audit' package
npx audit

சிறந்த நடைமுறைகள்

உற்பத்தியில் சரியான பதிப்புகளைப் பயன்படுத்தவும்: எதிர்பாராத புதுப்பிப்புகளைத் தடுக்க உங்கள் சார்புகளை சரியான பதிப்புகளில் பின்னிடவும்
சார்புகளை வழக்கமாகப் புதுப்பிக்கவும்: பாதுகாப்பு பேட்ச்கள் மற்றும் புதிய அம்சங்களின் நன்மையைப் பெற உங்கள் சார்புகளை நவீனமாக வைத்திருங்கள்
உங்கள் சார்புகளைத் தணிக்கை செய்யுங்கள்: உங்கள் சார்புகளில் அறியப்பட்ட பாதிப்புகளை வழக்கமாகச் சரிபார்க்கவும்
பூட்டு கோப்பைப் பயன்படுத்தவும்: உங்கள் பூட்டு கோப்பை எப்போதும் பதிப்பு கட்டுப்பாட்டிற்கு அர்ப்பணிக்கவும்
சார்புகளைக் குறைக்கவும்: உங்களுக்கு உண்மையில் தேவைப்படும் தொகுப்புகளை மட்டும் சேர்க்கவும்
நோக்கப்பட்ட தொகுப்புகளைப் பயன்படுத்தவும்: உள் தொகுப்புகளுக்கு, பெயர் முரண்பாடுகளைத் தவிர்க்க நோக்கங்களைப் பயன்படுத்தவும்
உங்கள் சார்புகளை ஆவணப்படுத்தவும்: ஒவ்வொரு சார்பும் ஏன் தேவைப்படுகிறது என்பதைப் பற்றிய தகவல்களை உங்கள் திட்டத்தின் ஆவணங்களில் சேர்க்கவும்

பொதுவான சிக்கல்களைத் தீர்த்தல்

npm தற்காலிக சேமிப்பை அழித்தல்

npm cache clean --force

node_modules மற்றும் மறுநிறுவலை நீக்குதல்

rm -rf node_modules
rm package-lock.json
npm install

சக சார்பு சிக்கல்களைச் சரிபார்க்கிறது

npm ls

உடைந்த சார்புகளை சரிசெய்தல்

npm rebuild

சுருக்கம்

ஒரு ஆரோக்கியமான Node.js திட்டத்தை பராமரிக்க திறம்பட்ட சார்பு மேலாண்மை முக்கியமானது.

பாதுகாப்பு

வழக்கமான தணிக்கை மற்றும் புதுப்பிப்புகள்

நிலைத்தன்மை

சரியான பதிப்பு கட்டுப்பாடு மற்றும் பூட்டு கோப்புகள்

பராமரிப்பு

தொகுப்பு வகைகள் மற்றும் சிறந்த நடைமுறைகள்

புதுப்பித்தல்

தானியக்க புதுப்பிப்பு கருவிகள்

💎 முக்கிய புள்ளிகள்:

  • சார்பு மேலாண்மை ஆரோக்கியமான Node.js திட்டத்திற்கு முக்கியமானது
  • செமான்டிக் பதிப்பு மேலாண்மையைப் புரிந்துகொள்ளுங்கள்
  • வெவ்வேறு வகையான சார்புகளைப் பயன்படுத்துங்கள்
  • பூட்டு கோப்புகளை எப்போதும் பதிப்பு கட்டுப்பாட்டில் வைக்கவும்
  • பாதுகாப்பு பாதிப்புகளுக்காக உங்கள் சார்புகளை வழக்கமாகத் தணிக்கை செய்யுங்கள்

பயிற்சி

சரியான புலப் பெயரை தேர்ந்தெடுக்கவும்.

உருவாக்க சார்புகள் package.json இல் ______ கீழ் பட்டியலிடப்பட்டுள்ளன.

dependencies
✗ தவறு! "dependencies" என்பது உற்பத்தி சார்புகளுக்கானது, உருவாக்க சார்புகளுக்கு அல்ல
devDependencies
✓ சரி! "devDependencies" என்பது உருவாக்கம் மற்றும் சோதனைக்கு மட்டுமே தேவைப்படும் தொகுப்புகளுக்கானது
development
✗ தவறு! "development" என்பது package.json இல் ஒரு நிலையான புலம் அல்ல
dev
✗ தவறு! "dev" என்பது package.json இல் ஒரு நிலையான புலம் அல்ல