Package.json இல் டில்டே மற்றும் கேரட்டைப் புரிந்துகொள்வது

Package.json இல் டில்டே மற்றும் கேரட்டைப் புரிந்துகொள்வது
Package.json இல் டில்டே மற்றும் கேரட்டைப் புரிந்துகொள்வது

Node.js சார்பு மேலாண்மை எளிமைப்படுத்தப்பட்டது

Node.js மற்றும் npm உலகில், ஒரு நிலையான வளர்ச்சி சூழலை பராமரிக்க சார்புகளை திறமையாக நிர்வகிப்பது மிகவும் முக்கியமானது. சமீபத்தில், package.json கோப்பில் npm தொகுப்பு பதிப்புகளைச் சேமிக்கும் விதத்தில் மாற்றம் ஏற்பட்டிருப்பதை நீங்கள் கவனித்திருக்கலாம்.

Node.js மற்றும் npm இன் சமீபத்திய நிலையான பதிப்புகளுக்கு மேம்படுத்திய பிறகு, npm நிறுவல் தருணத்தை இயக்குவது --சேவ் இப்போது முன்பு பயன்படுத்திய tilde (~) முன்னொட்டிற்குப் பதிலாக கேரட் (^) முன்னொட்டுடன் சார்புநிலையைச் சேமிக்கிறது. இந்த மாற்றங்கள் ஏன் செய்யப்பட்டன மற்றும் டில்ட் (~) மற்றும் கேரட் (^) பதிப்பு உத்திகளுக்கு இடையிலான வேறுபாடுகளை இந்தக் கட்டுரை ஆராய்கிறது.

கட்டளை விளக்கம்
fs.writeFileSync ஒரு கோப்பில் தரவை ஒத்திசைவாக எழுதுகிறது, அது இல்லை என்றால் புதிய கோப்பை உருவாக்குகிறது அல்லது ஏற்கனவே உள்ள கோப்பை மாற்றுகிறது.
require('fs') Node.js இல் கோப்பு கையாளுதல் செயல்பாடுகளை இயக்க கோப்பு முறைமை தொகுதி அடங்கும்.
express() எக்ஸ்பிரஸ் பயன்பாட்டை உருவாக்குகிறது, இது எக்ஸ்பிரஸ் கட்டமைப்பின் ஒரு எடுத்துக்காட்டு.
app.get() குறிப்பிட்ட பாதைக்கான GET கோரிக்கைகளுக்கான வழி கையாளுதலை வரையறுக்கிறது.
app.listen() சேவையகத்தைத் தொடங்கி, உள்வரும் கோரிக்கைகளுக்கு ஒரு குறிப்பிட்ட போர்ட்டில் கேட்கிறது.
require('express') Node.js இல் இணைய பயன்பாடுகளை உருவாக்க எக்ஸ்பிரஸ் தொகுதி அடங்கும்.

Node.js ஸ்கிரிப்ட்களின் விரிவான விளக்கம்

பின்தளத்தில் ஸ்கிரிப்ட் ஒரு சார்பு பதிப்புகளை எவ்வாறு நிர்வகிப்பது என்பதை விளக்குகிறது package.json tilde (~) மற்றும் caret (^) முன்னொட்டுகள் இரண்டையும் பயன்படுத்தி கோப்பு. முதலில், கோப்பு முறைமை தொகுதியைப் பயன்படுத்தி சேர்க்கிறோம் require('fs') கோப்பு கையாளுதல் செயல்பாடுகளை செயல்படுத்த. நாங்கள் ஒரு அடிப்படையை உருவாக்குகிறோம் package.json சார்பு கொண்ட அமைப்பு moment டில்டே (~) பதிப்பைப் பயன்படுத்தி குறிப்பிடப்பட்டது. இந்த கோப்பு வட்டில் எழுதப்பட்டது fs.writeFileSync, உருவாக்குதல் package-tilde.json. அடுத்து, நாம் மாற்றியமைக்கிறோம் package.json கேரட் (^) முன்னொட்டைப் பயன்படுத்த moment சார்பு மற்றும் இதை எழுதவும் package-caret.json. இரண்டு கோப்புகளின் உருவாக்கத்தையும் குறிக்கும் செய்தியை பதிவு செய்வதன் மூலம் ஸ்கிரிப்ட் முடிவடைகிறது.

பதிப்புத் தகவலை வழங்கும் எளிய சேவையகத்தை அமைக்க, ஃப்ரண்ட்எண்ட் ஸ்கிரிப்ட் எக்ஸ்பிரஸ் கட்டமைப்பைப் பயன்படுத்துகிறது. எக்ஸ்பிரஸ் தொகுதியைச் சேர்ப்பதன் மூலம் தொடங்குகிறோம் require('express') மற்றும் பயன்படுத்தி பயன்பாட்டு நிகழ்வை உருவாக்கவும் express(). ஒரு பாதை கையாளுபவர் வரையறுக்கப்பட்டுள்ளது app.get() பாதைக்கு /versioning, இது முன்பு உருவாக்கப்பட்டதைப் படிக்கிறது package-tilde.json மற்றும் package-caret.json கோப்புகள். கையாளுபவர் JSON பதிலை பதிப்புத் தகவலுடன் அனுப்புகிறார். சேவையகம் தொடங்கப்பட்டு 3000 போர்ட் மூலம் கேட்கிறது app.listen(), சர்வர் இயங்குகிறது என்பதைக் குறிக்க ஒரு செய்தியை பதிவு செய்தல்.

Node.js இல் சார்பு பதிப்பைப் புரிந்துகொள்வது

ஜாவாஸ்கிரிப்ட் - Node.js

// Backend script to demonstrate the use of tilde (~) and caret (^) in package.json
// Assuming a basic Node.js setup with npm initialized
// Create a simple package.json file
const fs = require('fs');
const packageJson = {
  "name": "versioning-demo",
  "version": "1.0.0",
  "dependencies": {
    "moment": "~2.29.1"  // Using tilde (~) versioning
  }
};
fs.writeFileSync('package-tilde.json', JSON.stringify(packageJson, null, 2));
packageJson.dependencies.moment = "^2.29.1";  // Change to caret (^) versioning
fs.writeFileSync('package-caret.json', JSON.stringify(packageJson, null, 2));
console.log('Created package-tilde.json and package-caret.json');

npm இல் பதிப்பு முன்னொட்டுகளை ஆராய்தல்

ஜாவாஸ்கிரிப்ட் - எக்ஸ்பிரஸ் உடன் Node.js

// Frontend script to fetch versioning information from the server
const express = require('express');
const app = express();
const port = 3000;
app.get('/versioning', (req, res) => {
  const packageTilde = require('./package-tilde.json');
  const packageCaret = require('./package-caret.json');
  res.send({
    tildeVersion: packageTilde.dependencies.moment,
    caretVersion: packageCaret.dependencies.moment
  });
});
app.listen(port, () => {
  console.log(`Server running at http://localhost:${port}`);
});

npm இல் பதிப்பு வரம்புகளை ஆராய்கிறது

npm இல் சார்பு நிர்வாகத்தின் மற்றொரு அம்சம், தொகுப்புகளின் நிறுவலை பதிப்பு வரம்புகள் எவ்வாறு பாதிக்கின்றன என்பதைப் புரிந்துகொள்வது. டில்டே (~) மற்றும் கேரட் (^) குறியீடுகள் இரண்டும் பதிப்பு வரம்புகளைக் குறிப்பிடப் பயன்படுத்தப்படுகின்றன, ஆனால் அவை வெவ்வேறு விதிகளைப் பின்பற்றுகின்றன. டில்டே (~) சின்னம், இடதுபுறத்தில் உள்ள பூஜ்ஜியமற்ற இலக்கத்தை மாற்றாத புதுப்பிப்புகளை அனுமதிக்கிறது, அதாவது அதே சிறிய பதிப்பில் உள்ள புதிய பேட்ச் பதிப்புகளுக்கு இது புதுப்பிக்கப்படும். உதாரணத்திற்கு, ~1.2.3 பதிப்புகளுக்கு புதுப்பிப்புகளை அனுமதிக்கும் 1.2.x ஆனால் இல்லை 1.3.0.

மறுபுறம், கேரட் (^) சின்னம், பெரிய பதிப்பின் இடதுபுறத்தில் உள்ள பூஜ்ஜியமற்ற இலக்கத்தை மாற்றாத புதுப்பிப்புகளை அனுமதிக்கிறது, மேலும் இது மிகவும் நெகிழ்வானது. உதாரணமாக, ^1.2.3 எந்த பதிப்பிற்கும் புதுப்பிப்புகளை அனுமதிக்கும் 1.x.x ஆனால் இல்லை 2.0.0. இந்த நெகிழ்வுத்தன்மையானது, பெரும்பாலும் பின்தங்கிய-இணக்கமான மாற்றங்களை உள்ளடக்கிய அதே பெரிய பதிப்பிற்குள் பொருந்தக்கூடிய தன்மையை உறுதிப்படுத்தும் அதே வேளையில், சார்புகளை புதுப்பித்த நிலையில் வைத்திருப்பதற்கு பயனுள்ளதாக இருக்கும்.

npm பதிப்பு பற்றிய பொதுவான கேள்விகள்

  1. npm பதிப்பில் டில்டு (~) சின்னம் எதைக் குறிக்கிறது?
  2. டில்டே (~) சின்னமானது குறிப்பிட்ட சிறிய பதிப்பிற்குள் பதிப்புகளை இணைக்க புதுப்பிப்புகளை அனுமதிக்கிறது.
  3. npm பதிப்பில் கேரட் (^) சின்னம் எதைக் குறிக்கிறது?
  4. கேரட் (^) சின்னம் குறிப்பிடப்பட்ட பெரிய பதிப்பிற்குள் சிறிய மற்றும் பேட்ச் பதிப்புகளுக்கான புதுப்பிப்புகளை அனுமதிக்கிறது.
  5. npm ஏன் tilde (~) இலிருந்து Caret (^) க்கு மாறியது?
  6. npm மேலும் நெகிழ்வான மற்றும் புதுப்பித்த சார்பு நிர்வாகத்தை அனுமதிக்க கேரட் (^) குறியீட்டை ஏற்றுக்கொண்டது.
  7. சார்புகளுக்கு கேரட் (^) குறியீட்டைப் பயன்படுத்துவது பாதுகாப்பானதா?
  8. ஆம், அதே பெரிய பதிப்பில் புதுப்பிப்புகளை அனுமதிப்பதால் இது பொதுவாக பாதுகாப்பானது, இது பெரும்பாலும் பின்தங்கிய இணக்கத்தன்மையை உறுதி செய்கிறது.
  9. தொகுப்பின் சரியான பதிப்பை எவ்வாறு குறிப்பிடுவது?
  10. போன்ற முன்னொட்டு இல்லாமல் பதிப்பு எண்ணைப் பயன்படுத்தி சரியான பதிப்பைக் குறிப்பிடலாம் "1.2.3".
  11. நான் டில்டு (~) மற்றும் கேரட் (^) இரண்டையும் ஒரே மாதிரி பயன்படுத்தலாமா package.json?
  12. ஆம், நீங்கள் இரண்டு சின்னங்களையும் ஒரே மாதிரியாகப் பயன்படுத்தலாம் package.json வெவ்வேறு பதிப்பு உத்திகளுடன் வெவ்வேறு சார்புகளை நிர்வகிக்க கோப்பு.
  13. நான் எந்த பதிப்பு முன்னொட்டையும் பயன்படுத்தாவிட்டால் என்ன நடக்கும்?
  14. பதிப்பு முன்னொட்டு எதுவும் பயன்படுத்தப்படாவிட்டால், npm குறிப்பிடப்பட்ட சரியான பதிப்பை நிறுவும்.
  15. அனைத்து சார்புகளையும் அவற்றின் சமீபத்திய பதிப்புகளுக்கு எவ்வாறு புதுப்பிப்பது?
  16. நீங்கள் கட்டளையைப் பயன்படுத்தலாம் npm update குறிப்பிட்ட பதிப்பு வரம்புகளின்படி அனைத்து சார்புகளையும் அவற்றின் சமீபத்திய பதிப்புகளுக்கு புதுப்பிக்க.
  17. npm இல் சொற்பொருள் பதிப்பு என்றால் என்ன?
  18. சொற்பொருள் பதிப்பு (செம்வர்) என்பது மூன்று-பகுதி பதிப்பு எண்ணைப் பயன்படுத்தும் ஒரு பதிப்புத் திட்டமாகும்: major.minor.patch, இணக்கத்தன்மை மற்றும் மென்பொருளில் ஏற்படும் மாற்றங்களைக் குறிக்கிறது.

npm பதிப்பு பற்றிய இறுதி எண்ணங்கள்

சுருக்கமாக, npm பதிப்பில் டில்டே (~) மற்றும் கேரெட் (^) ஆகியவற்றுக்கு இடையேயான வேறுபாட்டைப் புரிந்துகொள்வது பயனுள்ள சார்பு மேலாண்மைக்கு அவசியம். டில்டே (~) சின்னம் புதுப்பிப்புகளை ஒரே சிறிய பதிப்பில் உள்ள பேட்ச் பதிப்புகளுக்கு கட்டுப்படுத்துகிறது, அதே நேரத்தில் கேரட் (^) சின்னம் அதே பெரிய பதிப்பில் புதுப்பிப்புகளை அனுமதிக்கிறது. முன்னிருப்பாக கேரட் (^) ஐப் பயன்படுத்துவதற்கான மாற்றம் அதிக நெகிழ்வுத்தன்மையை வழங்குகிறது மற்றும் இணக்கத்தன்மையை சமரசம் செய்யாமல் சார்புநிலைகள் மிகவும் புதுப்பித்த நிலையில் இருப்பதை உறுதி செய்கிறது. இந்த பதிப்பு உத்திகளைப் பின்பற்றுவதன் மூலம், டெவலப்பர்கள் நிலையான மற்றும் திறமையான Node.js மேம்பாட்டு சூழலை பராமரிக்க முடியும்.