தமிழ்

உங்கள் வெப்பேக் பில்டுகளை மேம்படுத்துங்கள்! உலகளாவிய பயன்பாடுகளில் வேகமான ஏற்றுதல் நேரங்கள் மற்றும் மேம்பட்ட செயல்திறனுக்கான மேம்பட்ட மாட்யூல் கிராஃப் ஆப்டிமைசேஷன் நுட்பங்களைக் கற்றுக்கொள்ளுங்கள்.

வெப்பேக் மாட்யூல் கிராஃப் ஆப்டிமைசேஷன்: உலகளாவிய டெவலப்பர்களுக்கான ஒரு ஆழமான பார்வை

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

வெப்பேக் மாட்யூல் கிராஃப் என்றால் என்ன?

மாட்யூல் கிராஃப் என்பது உங்கள் பயன்பாட்டில் உள்ள அனைத்து மாட்யூல்களின் மற்றும் அவற்றுக்கிடையேயான உறவுகளின் பிரதிநிதித்துவம் ஆகும். வெப்பேக் உங்கள் கோடை செயலாக்கும்போது, அது ஒரு நுழைவுப் புள்ளியில் (பொதுவாக உங்கள் முக்கிய ஜாவாஸ்கிரிப்ட் கோப்பு) தொடங்கி, இந்த கிராஃபை உருவாக்க அனைத்து import மற்றும் require அறிக்கைகளையும் மீண்டும் மீண்டும் கடந்து செல்கிறது. இந்த கிராஃபை புரிந்துகொள்வது, இடையூறுகளைக் கண்டறிந்து மேம்படுத்தல் நுட்பங்களைப் பயன்படுத்த உங்களை அனுமதிக்கிறது.

ஒரு எளிய பயன்பாட்டைக் கற்பனை செய்து பாருங்கள்:

// index.js
import { greet } from './greeter';
import { formatDate } from './utils';

console.log(greet('World'));
console.log(formatDate(new Date()));
// greeter.js
export function greet(name) {
  return `Hello, ${name}!`;
}
// utils.js
export function formatDate(date) {
  return date.toLocaleDateString('en-US');
}

வெப்பேக், index.js ஆனது greeter.js மற்றும் utils.js ஐ சார்ந்துள்ளது என்பதைக் காட்டும் ஒரு மாட்யூல் கிராஃபை உருவாக்கும். மிகவும் சிக்கலான பயன்பாடுகள் கணிசமாக பெரிய மற்றும் மிகவும் ஒன்றோடொன்று இணைக்கப்பட்ட கிராஃப்களைக் கொண்டுள்ளன.

மாட்யூல் கிராஃபை மேம்படுத்துவது ஏன் முக்கியம்?

மோசமாக மேம்படுத்தப்பட்ட மாட்யூல் கிராஃப் பல சிக்கல்களுக்கு வழிவகுக்கும்:

மாட்யூல் கிராஃப் மேம்படுத்தல் நுட்பங்கள்

அதிர்ஷ்டவசமாக, வெப்பேக் மாட்யூல் கிராஃபை மேம்படுத்துவதற்கு பல சக்திவாய்ந்த நுட்பங்களை வழங்குகிறது. மிகவும் பயனுள்ள சில முறைகளைப் பற்றிய விரிவான பார்வை இங்கே:

1. கோட் ஸ்பிளிட்டிங் (Code Splitting)

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

கோட் ஸ்பிளிட்டிங்கின் நன்மைகள்:

வெப்பேக் கோட் ஸ்பிளிட்டிங்கை செயல்படுத்த பல வழிகளை வழங்குகிறது:

உதாரணம்: கோட் ஸ்பிளிட்டிங்குடன் சர்வதேசமயமாக்கல் (i18n)

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

// i18n.js
export async function loadTranslations(locale) {
  switch (locale) {
    case 'en':
      return import('./translations/en.json');
    case 'fr':
      return import('./translations/fr.json');
    case 'es':
      return import('./translations/es.json');
    default:
      return import('./translations/en.json');
  }
}

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

2. ட்ரீ ஷேக்கிங் (Tree Shaking) (பயன்படுத்தப்படாத கோட் நீக்கம்)

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

திறமையான ட்ரீ ஷேக்கிங்கிற்கான தேவைகள்:

உதாரணம்: லோடேஷ் மற்றும் ட்ரீ ஷேக்கிங்

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

திறனற்ற இறக்குமதி:

// ட்ரீ ஷேக்கிங்கிற்கு முன்
import _ from 'lodash';

_.map([1, 2, 3], (x) => x * 2);

திறமையான இறக்குமதி (ட்ரீ-ஷேக்கபிள்):

// ட்ரீ ஷேக்கிங்கிற்குப் பிறகு
import map from 'lodash/map';

map([1, 2, 3], (x) => x * 2);

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

3. ஸ்கோப் ஹாய்ஸ்டிங் (Scope Hoisting) (மாட்யூல் ஒன்றிணைப்பு)

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

ஸ்கோப் ஹாய்ஸ்டிங் எவ்வாறு செயல்படுகிறது:

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

ஸ்கோப் ஹாய்ஸ்டிங்கை இயக்குதல்:

வெப்பேக் புரொடக்ஷன் பயன்முறையில் ஸ்கோப் ஹாய்ஸ்டிங் இயல்பாகவே இயக்கப்பட்டுள்ளது. உங்கள் வெப்பேக் கட்டமைப்பில் இதை வெளிப்படையாகவும் இயக்கலாம்:

// webpack.config.js
module.exports = {
  //...
  optimization: {
    concatenateModules: true,
  },
};

ஸ்கோப் ஹாய்ஸ்டிங்கின் நன்மைகள்:

4. மாட்யூல் ஃபெடரேஷன் (Module Federation)

மாட்யூல் ஃபெடரேஷன் என்பது வெப்பேக் 5 இல் அறிமுகப்படுத்தப்பட்ட ஒரு சக்திவாய்ந்த அம்சமாகும், இது வெவ்வேறு வெப்பேக் பில்டுகளுக்கு இடையில் கோடைப் பகிர உங்களை அனுமதிக்கிறது. இது பொதுவான கூறுகள் அல்லது நூலகங்களைப் பகிர வேண்டிய தனித்தனி பயன்பாடுகளில் பணிபுரியும் பல அணிகளைக் கொண்ட பெரிய நிறுவனங்களுக்கு குறிப்பாக பயனுள்ளதாக இருக்கும். இது மைக்ரோ-ஃபிரண்ட்எண்ட் கட்டமைப்புகளுக்கு ஒரு கேம்-சேஞ்சர் ஆகும்.

முக்கிய கருத்துக்கள்:

உதாரணம்: ஒரு UI கூறு நூலகத்தைப் பகிர்தல்

உங்களிடம் app1 மற்றும் app2 ஆகிய இரண்டு பயன்பாடுகள் உள்ளன, அவை இரண்டும் ஒரு பொதுவான UI கூறு நூலகத்தைப் பயன்படுத்துகின்றன என்று கற்பனை செய்து பாருங்கள். மாட்யூல் ஃபெடரேஷனுடன், நீங்கள் UI கூறு நூலகத்தை ஒரு ரிமோட் மாட்யூலாக வெளிப்படுத்தி இரண்டு பயன்பாடுகளிலும் அதைப் பயன்படுத்தலாம்.

app1 (ஹோஸ்ட்):

// webpack.config.js
const ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin');

module.exports = {
  //...
  plugins: [
    new ModuleFederationPlugin({
      name: 'app1',
      remotes: {
        'ui': 'ui@http://localhost:3001/remoteEntry.js',
      },
      shared: ['react', 'react-dom'],
    }),
  ],
};
// App.js
import React from 'react';
import Button from 'ui/Button';

function App() {
  return (
    

App 1

); } export default App;

app2 (ஹோஸ்டும் கூட):

// webpack.config.js
const ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin');

module.exports = {
  //...
  plugins: [
    new ModuleFederationPlugin({
      name: 'app2',
      remotes: {
        'ui': 'ui@http://localhost:3001/remoteEntry.js',
      },
      shared: ['react', 'react-dom'],
    }),
  ],
};

ui (ரிமோட்):

// webpack.config.js
const ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin');

module.exports = {
  //...
  plugins: [
    new ModuleFederationPlugin({
      name: 'ui',
      filename: 'remoteEntry.js',
      exposes: {
        './Button': './src/Button',
      },
      shared: ['react', 'react-dom'],
    }),
  ],
};

மாட்யூல் ஃபெடரேஷனின் நன்மைகள்:

மாட்யூல் ஃபெடரேஷனுக்கான உலகளாவிய பரிசீலனைகள்:

5. கேச்சிங் உத்திகள் (Caching Strategies)

வலைப் பயன்பாடுகளின் செயல்திறனை மேம்படுத்துவதற்கு திறமையான கேச்சிங் அவசியம். பில்டுகளை வேகப்படுத்தவும் ஏற்றுதல் நேரங்களைக் குறைக்கவும் கேச்சிங்கைப் பயன்படுத்த வெப்பேக் பல வழிகளை வழங்குகிறது.

கேச்சிங் வகைகள்:

கேச்சிங்கிற்கான உலகளாவிய பரிசீலனைகள்:

6. ரிசால்வ் விருப்பங்களை மேம்படுத்துதல் (Optimize Resolve Options)

வெப்பேக்கின் `resolve` விருப்பங்கள் மாட்யூல்கள் எவ்வாறு தீர்க்கப்படுகின்றன என்பதைக் கட்டுப்படுத்துகின்றன. இந்த விருப்பங்களை மேம்படுத்துவது பில்ட் செயல்திறனை கணிசமாக மேம்படுத்தும்.

7. டிரான்ஸ்பிலேஷன் மற்றும் பாலிஃபில்லிங்கைக் குறைத்தல்

நவீன ஜாவாஸ்கிரிப்டை பழைய பதிப்புகளுக்கு டிரான்ஸ்பைல் செய்வதும், பழைய உலாவிகளுக்கு பாலிஃபில்களைச் சேர்ப்பதும் பில்ட் செயல்முறைக்கு மேல்சுமையைச் சேர்த்து பண்டில் அளவுகளை அதிகரிக்கிறது. உங்கள் இலக்கு உலாவிகளை கவனமாகக் கருத்தில் கொண்டு, டிரான்ஸ்பிலேஷன் மற்றும் பாலிஃபில்லிங்கை முடிந்தவரை குறைக்கவும்.

8. உங்கள் பில்டுகளை சுயவிவரப்படுத்துதல் மற்றும் பகுப்பாய்வு செய்தல்

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

முடிவுரை

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