ಜಾಗತಿಕವಾಗಿ ವಿತರಿಸಲಾದ ತಂಡಗಳಲ್ಲಿ ವರ್ಧಿತ ಅಭಿವೃದ್ಧಿ ವರ್ಕ್ಫ್ಲೋಗಳು, ಸುಧಾರಿತ ಉತ್ಪಾದಕತೆ, ಮತ್ತು ವೇಗದ ಪುನರಾವರ್ತನೆಯ ಸೈಕಲ್ಗಳಿಗಾಗಿ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮಾಡ್ಯೂಲ್ ಹಾಟ್ ರಿಪ್ಲೇಸ್ಮೆಂಟ್ (HMR) ನ ಪ್ರಯೋಜನಗಳನ್ನು ಅನ್ವೇಷಿಸಿ.
ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮಾಡ್ಯೂಲ್ ಹಾಟ್ ರಿಪ್ಲೇಸ್ಮೆಂಟ್: ಜಾಗತಿಕ ತಂಡಗಳಿಗೆ ಒಂದು ಅಭಿವೃದ್ಧಿ ವರ್ಕ್ಫ್ಲೋ ವರ್ಧನೆ
ವೆಬ್ ಅಭಿವೃದ್ಧಿಯ ವೇಗದ ಜಗತ್ತಿನಲ್ಲಿ, ನಿಮ್ಮ ವರ್ಕ್ಫ್ಲೋ ಅನ್ನು ಅತ್ಯುತ್ತಮಗೊಳಿಸುವುದು ಅತ್ಯಂತ ನಿರ್ಣಾಯಕವಾಗಿದೆ, ವಿಶೇಷವಾಗಿ ವಿವಿಧ ಸಮಯ ವಲಯಗಳು ಮತ್ತು ಯೋಜನೆಯ ಹಂತಗಳಲ್ಲಿ ಕೆಲಸ ಮಾಡುವ ಜಾಗತಿಕವಾಗಿ ವಿತರಿಸಲಾದ ತಂಡಗಳಿಗೆ. ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮಾಡ್ಯೂಲ್ ಹಾಟ್ ರಿಪ್ಲೇಸ್ಮೆಂಟ್ (HMR) ಒಂದು ಶಕ್ತಿಯುತ ತಂತ್ರವಾಗಿದ್ದು, ಪೂರ್ಣ ಪುಟವನ್ನು ರಿಲೋಡ್ ಮಾಡದೆಯೇ ಚಾಲನೆಯಲ್ಲಿರುವ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ಮಾಡ್ಯೂಲ್ಗಳನ್ನು ನವೀಕರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುವ ಮೂಲಕ ಅಭಿವೃದ್ಧಿ ಅನುಭವವನ್ನು ಗಣನೀಯವಾಗಿ ಹೆಚ್ಚಿಸುತ್ತದೆ. ಇದು ವೇಗದ ಪುನರಾವರ್ತನೆಯ ಸೈಕಲ್ಗಳು, ಸುಧಾರಿತ ಉತ್ಪಾದಕತೆ, ಮತ್ತು ಹೆಚ್ಚು ಸುಗಮವಾದ ಡೀಬಗ್ಗಿಂಗ್ ಪ್ರಕ್ರಿಯೆಗೆ ಕಾರಣವಾಗುತ್ತದೆ. ಈ ಲೇಖನವು HMR ನ ಪ್ರಯೋಜನಗಳನ್ನು ಅನ್ವೇಷಿಸುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಯೋಜನೆಗಳಲ್ಲಿ ಅದನ್ನು ಹೇಗೆ ಕಾರ್ಯಗತಗೊಳಿಸುವುದು ಎಂಬುದರ ಕುರಿತು ಪ್ರಾಯೋಗಿಕ ಮಾರ್ಗದರ್ಶನವನ್ನು ನೀಡುತ್ತದೆ.
ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮಾಡ್ಯೂಲ್ ಹಾಟ್ ರಿಪ್ಲೇಸ್ಮೆಂಟ್ (HMR) ಎಂದರೇನು?
HMR ಎಂಬುದು ವೆಬ್ಪ್ಯಾಕ್, ಪಾರ್ಸೆಲ್ ಮತ್ತು ರೋಲಪ್ನಂತಹ ಮಾಡ್ಯೂಲ್ ಬಂಡ್ಲರ್ಗಳಿಂದ ಬೆಂಬಲಿತವಾದ ಒಂದು ವೈಶಿಷ್ಟ್ಯವಾಗಿದ್ದು, ಪೂರ್ಣ ರಿಫ್ರೆಶ್ ಅಗತ್ಯವಿಲ್ಲದೆ ಅಪ್ಲಿಕೇಶನ್ ಚಾಲನೆಯಲ್ಲಿರುವಾಗ ಮಾಡ್ಯೂಲ್ಗಳನ್ನು ಬದಲಾಯಿಸಲು, ಸೇರಿಸಲು ಅಥವಾ ತೆಗೆದುಹಾಕಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಇದರರ್ಥ, ಅಪ್ಲಿಕೇಶನ್ನ ಪ್ರಸ್ತುತ ಸ್ಥಿತಿಯನ್ನು ಕಳೆದುಕೊಳ್ಳದೆ, ನಿಮ್ಮ ಕೋಡ್ನಲ್ಲಿ ನೀವು ಮಾಡುವ ಬದಲಾವಣೆಗಳನ್ನು ಬಹುತೇಕ ತಕ್ಷಣವೇ ನೋಡಬಹುದು. ನೀವು ಹಲವಾರು ಕ್ಷೇತ್ರಗಳನ್ನು ಈಗಾಗಲೇ ಭರ್ತಿ ಮಾಡಿರುವ ಸಂಕೀರ್ಣ ಫಾರ್ಮ್ನಲ್ಲಿ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದೀರಿ ಎಂದು ಕಲ್ಪಿಸಿಕೊಳ್ಳಿ. HMR ಇಲ್ಲದೆ, ನೀವು ಪ್ರತಿ ಬಾರಿ ಸಣ್ಣ CSS ಹೊಂದಾಣಿಕೆ ಅಥವಾ ಸಣ್ಣ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಬದಲಾವಣೆ ಮಾಡಿದಾಗ, ನೀವು ಇಡೀ ಪುಟವನ್ನು ರಿಲೋಡ್ ಮಾಡಿ ಮತ್ತು ಎಲ್ಲಾ ಫಾರ್ಮ್ ಡೇಟಾವನ್ನು ಮರು-ನಮೂದಿಸಬೇಕಾಗುತ್ತದೆ. HMR ನೊಂದಿಗೆ, ಬದಲಾವಣೆಗಳು ತಕ್ಷಣವೇ ಪ್ರತಿಫಲಿಸುತ್ತವೆ, ಇದು ನಿಮ್ಮ ಅಮೂಲ್ಯ ಸಮಯ ಮತ್ತು ಶ್ರಮವನ್ನು ಉಳಿಸುತ್ತದೆ.
HMR ಬಳಸುವುದರ ಪ್ರಯೋಜನಗಳು
- ವೇಗದ ಅಭಿವೃದ್ಧಿ ಸೈಕಲ್ಗಳು: HMR ಪೂರ್ಣ ಪುಟ ರಿಲೋಡ್ಗಳ ಅಗತ್ಯವನ್ನು ನಿವಾರಿಸುತ್ತದೆ, ಇದರಿಂದ ಡೆವಲಪರ್ಗಳು ಬದಲಾವಣೆಗಳನ್ನು ಬಹುತೇಕ ತಕ್ಷಣವೇ ನೋಡಬಹುದು. ಇದು ಅಭಿವೃದ್ಧಿ ಪ್ರಕ್ರಿಯೆಯನ್ನು ನಾಟಕೀಯವಾಗಿ ವೇಗಗೊಳಿಸುತ್ತದೆ, ವೇಗದ ಪುನರಾವರ್ತನೆ ಮತ್ತು ಪ್ರಯೋಗಕ್ಕೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
- ಅಪ್ಲಿಕೇಶನ್ ಸ್ಥಿತಿಯನ್ನು ಸಂರಕ್ಷಿಸುವುದು: ಸಾಂಪ್ರದಾಯಿಕ ರಿಲೋಡ್ಗಳಿಗಿಂತ ಭಿನ್ನವಾಗಿ, HMR ಅಪ್ಲಿಕೇಶನ್ನ ಸ್ಥಿತಿಯನ್ನು ಸಂರಕ್ಷಿಸುತ್ತದೆ. ಸಂಕೀರ್ಣ ಫಾರ್ಮ್ಗಳು, ಸಂವಾದಾತ್ಮಕ ಕಾಂಪೊನೆಂಟ್ಗಳು ಅಥವಾ ಸ್ಥಿತಿಯನ್ನು ನಿರ್ವಹಿಸುವುದು ನಿರ್ಣಾಯಕವಾಗಿರುವ ಸಿಂಗಲ್-ಪೇಜ್ ಅಪ್ಲಿಕೇಶನ್ಗಳೊಂದಿಗೆ (SPAs) ಕೆಲಸ ಮಾಡುವಾಗ ಇದು ವಿಶೇಷವಾಗಿ ಪ್ರಯೋಜನಕಾರಿಯಾಗಿದೆ.
- ಸುಧಾರಿತ ಡೀಬಗ್ಗಿಂಗ್ ಅನುಭವ: HMR ನೊಂದಿಗೆ, ನೀವು ಪ್ರತ್ಯೇಕ ಮಾಡ್ಯೂಲ್ಗಳನ್ನು ಹೆಚ್ಚು ಸುಲಭವಾಗಿ ಪ್ರತ್ಯೇಕಿಸಬಹುದು ಮತ್ತು ಡೀಬಗ್ ಮಾಡಬಹುದು. ಬದಲಾವಣೆಗಳು ತಕ್ಷಣವೇ ಪ್ರತಿಫಲಿಸುವುದನ್ನು ನೋಡುವ ಮೂಲಕ, ನೀವು ಸಂಪೂರ್ಣ ಅಪ್ಲಿಕೇಶನ್ ಮೂಲಕ ನ್ಯಾವಿಗೇಟ್ ಮಾಡದೆಯೇ ದೋಷಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಗುರುತಿಸಬಹುದು ಮತ್ತು ಸರಿಪಡಿಸಬಹುದು.
- ಜಾಗತಿಕ ತಂಡಗಳಿಗೆ ವರ್ಧಿತ ಸಹಯೋಗ: ವೇಗದ ಫೀಡ್ಬ್ಯಾಕ್ ಲೂಪ್ಗಳು ಎಂದರೆ ಡೆವಲಪರ್ಗಳ ಸ್ಥಳವನ್ನು ಲೆಕ್ಕಿಸದೆ, ತ್ವರಿತ ಕೋಡ್ ವಿಮರ್ಶೆಗಳು ಮತ್ತು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿ ಸಹಯೋಗ. ಲಂಡನ್ನಲ್ಲಿರುವ ಡೆವಲಪರ್ ಮಾಡಿದ ಬದಲಾವಣೆಯ ಪ್ರಭಾವವನ್ನು ಟೋಕಿಯೊದಲ್ಲಿರುವ ಡೆವಲಪರ್ ಬಹುತೇಕ ತಕ್ಷಣವೇ ನೋಡಬಹುದು.
- ಹೆಚ್ಚಿದ ಉತ್ಪಾದಕತೆ: ರಿಲೋಡ್ಗಳಿಗಾಗಿ ಕಾಯುವ ಮತ್ತು ಡೇಟಾವನ್ನು ಮರು-ನಮೂದಿಸುವ ಸಮಯವನ್ನು ಕಡಿಮೆ ಮಾಡುವ ಮೂಲಕ, HMR ಡೆವಲಪರ್ ಉತ್ಪಾದಕತೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ ಮತ್ತು ಕೋಡ್ ಬರೆಯುವುದರ ಮೇಲೆ ಗಮನಹರಿಸಲು ಅವರಿಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
ವೆಬ್ಪ್ಯಾಕ್ನೊಂದಿಗೆ HMR ಅನ್ನು ಅಳವಡಿಸುವುದು
ವೆಬ್ಪ್ಯಾಕ್ ಒಂದು ಜನಪ್ರಿಯ ಮಾಡ್ಯೂಲ್ ಬಂಡ್ಲರ್ ಆಗಿದ್ದು, ಇದು HMR ಗೆ ಅತ್ಯುತ್ತಮ ಬೆಂಬಲವನ್ನು ನೀಡುತ್ತದೆ. ವೆಬ್ಪ್ಯಾಕ್-ಆಧಾರಿತ ಯೋಜನೆಯಲ್ಲಿ HMR ಅನ್ನು ಹೇಗೆ ಅಳವಡಿಸುವುದು ಎಂಬುದರ ಕುರಿತು ಹಂತ-ಹಂತದ ಮಾರ್ಗದರ್ಶಿ ಇಲ್ಲಿದೆ:
1. ವೆಬ್ಪ್ಯಾಕ್ ಮತ್ತು ಅದರ ಡಿಪೆಂಡೆನ್ಸಿಗಳನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ
ನೀವು ಈಗಾಗಲೇ ಮಾಡದಿದ್ದರೆ, ನಿಮ್ಮ ಯೋಜನೆಗೆ ವೆಬ್ಪ್ಯಾಕ್ ಮತ್ತು ಅಗತ್ಯ ಲೋಡರ್ಗಳು ಮತ್ತು ಪ್ಲಗಿನ್ಗಳನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ. ಉದಾಹರಣೆಗೆ:
npm install webpack webpack-cli webpack-dev-server --save-dev
ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ಗಾಗಿ ಬೇಬೆಲ್ ಮತ್ತು ಸ್ಟೈಲಿಂಗ್ಗಾಗಿ CSS ಲೋಡರ್ಗಳಂತಹ ನಿರ್ದಿಷ್ಟ ಫೈಲ್ ಪ್ರಕಾರಗಳಿಗೆ ನಿಮಗೆ ಲೋಡರ್ಗಳು ಬೇಕಾಗಬಹುದು:
npm install babel-loader css-loader style-loader --save-dev
2. ವೆಬ್ಪ್ಯಾಕ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ
ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್ ರೂಟ್ನಲ್ಲಿ `webpack.config.js` ಫೈಲ್ ಅನ್ನು ರಚಿಸಿ ಮತ್ತು ಸೂಕ್ತವಾದ ಲೋಡರ್ಗಳು ಮತ್ತು ಪ್ಲಗಿನ್ಗಳನ್ನು ಬಳಸಲು ವೆಬ್ಪ್ಯಾಕ್ ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ. ಇಲ್ಲೊಂದು ಮೂಲಭೂತ ಉದಾಹರಣೆ ಇದೆ:
const path = require('path');
const webpack = require('webpack');
module.exports = {
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist'),
publicPath: '/dist/' // Important for HMR
},
devServer: {
hot: true,
static: {
directory: path.join(__dirname, '.'),
},
port: 8080
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
},
{
test: /\.css$/,
use: ['style-loader', 'css-loader']
}
]
},
plugins: [
new webpack.HotModuleReplacementPlugin()
],
mode: 'development'
};
ಪ್ರಮುಖ ಕಾನ್ಫಿಗರೇಶನ್ ಅಂಶಗಳು:
- `devServer.hot: true`: ವೆಬ್ಪ್ಯಾಕ್ ಡೆವಲಪ್ಮೆಂಟ್ ಸರ್ವರ್ನಲ್ಲಿ HMR ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ.
- `output.publicPath`: ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ನೊಳಗಿನ ಎಲ್ಲಾ ಆಸ್ತಿಗಳಿಗೆ ಮೂಲ URL ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. HMR ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸಲು ಇದು ನಿರ್ಣಾಯಕವಾಗಿದೆ.
- `plugins: [new webpack.HotModuleReplacementPlugin()]`: ನಿಮ್ಮ ವೆಬ್ಪ್ಯಾಕ್ ಕಾನ್ಫಿಗರೇಶನ್ಗೆ HMR ಪ್ಲಗಿನ್ ಅನ್ನು ಸೇರಿಸುತ್ತದೆ.
3. ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಕೋಡ್ ಅನ್ನು ಮಾರ್ಪಡಿಸಿ
ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಕೋಡ್ನಲ್ಲಿ HMR ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು, HMR ಸಕ್ರಿಯವಾಗಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸುವ ಮತ್ತು ಪ್ರಸ್ತುತ ಮಾಡ್ಯೂಲ್ಗೆ ನವೀಕರಣಗಳನ್ನು ಸ್ವೀಕರಿಸುವ ಸಣ್ಣ ತುಣುಕನ್ನು ನೀವು ಸೇರಿಸಬೇಕಾಗಿದೆ. ಈ ಹಂತವು ನಿರ್ಣಾಯಕವಾಗಿದೆ, ಮತ್ತು ನೀವು ಬಳಸುತ್ತಿರುವ ಫ್ರೇಮ್ವರ್ಕ್ ಅಥವಾ ಲೈಬ್ರರಿಯನ್ನು (ರಿಯಾಕ್ಟ್, ವ್ಯೂ, ಆಂಗುಲರ್, ಇತ್ಯಾದಿ) ಅವಲಂಬಿಸಿ ಅಳವಡಿಕೆಯು ಸ್ವಲ್ಪ ಬದಲಾಗುತ್ತದೆ.
ಉದಾಹರಣೆ (ಸಾಮಾನ್ಯ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್):
if (module.hot) {
module.hot.accept();
module.hot.dispose(function() {
// Module is about to be replaced
});
}
ಉದಾಹರಣೆ (ರಿಯಾಕ್ಟ್):
ರಿಯಾಕ್ಟ್ಗಾಗಿ, ನೀವು `react-hot-loader` ನಂತಹ ಲೈಬ್ರರಿಗಳನ್ನು ಬಳಸುತ್ತಿದ್ದರೆ, ನಿಮ್ಮ ಕಾಂಪೊನೆಂಟ್ಗಳಲ್ಲಿ ಸ್ಪಷ್ಟವಾದ HMR ಕೋಡ್ ಅನ್ನು ಸೇರಿಸುವ ಅಗತ್ಯವಿಲ್ಲ. ಆದಾಗ್ಯೂ, ನಿಮ್ಮ `index.js` ಅಥವಾ ಅಂತಹುದೇ ಎಂಟ್ರಿ ಪಾಯಿಂಟ್ನಲ್ಲಿ ನಿಮ್ಮ ರೂಟ್ ಕಾಂಪೊನೆಂಟ್ ಅನ್ನು `react-hot-loader/root` ನಿಂದ `hot` ಜೊತೆಗೆ ಸುತ್ತುವರಿಯಬೇಕಾಗಬಹುದು.
import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
import { hot } from 'react-hot-loader/root';
const HotApp = hot(App);
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render( );
`react-hot-loader` ಅನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ
npm install react-hot-loader --save-dev
ಬೇಬೆಲ್ ಕಾನ್ಫಿಗರೇಶನ್ (ಅಗತ್ಯವಿದ್ದರೆ): ನಿಮ್ಮ `.babelrc` ಅಥವಾ `babel.config.js` ನಲ್ಲಿ `react-hot-loader/babel` ಸೇರಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ:
{
"plugins": ["react-hot-loader/babel"]
}
4. ವೆಬ್ಪ್ಯಾಕ್ ಡೆವ್ ಸರ್ವರ್ ಅನ್ನು ರನ್ ಮಾಡಿ
ಕೆಳಗಿನ ಕಮಾಂಡ್ ಬಳಸಿ ವೆಬ್ಪ್ಯಾಕ್ ಡೆವಲಪ್ಮೆಂಟ್ ಸರ್ವರ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸಿ:
npx webpack serve
ಈಗ, ನೀವು ನಿಮ್ಮ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಅಥವಾ CSS ಫೈಲ್ಗಳಿಗೆ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಿದಾಗ, ಪೂರ್ಣ ಪುಟ ರಿಲೋಡ್ ಇಲ್ಲದೆ ನಿಮ್ಮ ಬ್ರೌಸರ್ನಲ್ಲಿ ನವೀಕರಣಗಳು ಪ್ರತಿಫಲಿಸುವುದನ್ನು ನೀವು ನೋಡಬೇಕು.
ಜನಪ್ರಿಯ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಫ್ರೇಮ್ವರ್ಕ್ಗಳೊಂದಿಗೆ HMR
HMR ಜನಪ್ರಿಯ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಫ್ರೇಮ್ವರ್ಕ್ಗಳಲ್ಲಿ ವ್ಯಾಪಕವಾಗಿ ಬೆಂಬಲಿತವಾಗಿದೆ. ರಿಯಾಕ್ಟ್, ವ್ಯೂ, ಮತ್ತು ಆಂಗುಲರ್ನಲ್ಲಿ ಅದನ್ನು ಹೇಗೆ ಅಳವಡಿಸುವುದು ಎಂಬುದರ ಸಂಕ್ಷಿಪ್ತ ಅವಲೋಕನ ಇಲ್ಲಿದೆ:
ರಿಯಾಕ್ಟ್
ಮೇಲೆ ತಿಳಿಸಿದಂತೆ, ರಿಯಾಕ್ಟ್ ಪ್ರಾಜೆಕ್ಟ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ `react-hot-loader` ಅನ್ನು ಬಳಸುತ್ತವೆ ಅಥವಾ ಕ್ರಿಯೇಟ್ ರಿಯಾಕ್ಟ್ ಆಪ್ (CRA) ನಂತಹ ಪರಿಕರಗಳ ಮೂಲಕ ಕಾನ್ಫಿಗರ್ ಮಾಡಲ್ಪಡುತ್ತವೆ, ಇದು HMR ಅನ್ನು ಬಾಕ್ಸ್ನಿಂದಲೇ ಒದಗಿಸುತ್ತದೆ. CRA ಬಳಸುವಾಗ, ನೀವು ಸಾಮಾನ್ಯವಾಗಿ ಯಾವುದೇ ಹಸ್ತಚಾಲಿತ ಕಾನ್ಫಿಗರೇಶನ್ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಬೇಕಾಗಿಲ್ಲ; HMR ಡಿಫಾಲ್ಟ್ ಆಗಿ ಸಕ್ರಿಯವಾಗಿರುತ್ತದೆ.
ವ್ಯೂ
Vue.js ತನ್ನ ಅಧಿಕೃತ CLI ಮೂಲಕ ಅತ್ಯುತ್ತಮ HMR ಬೆಂಬಲವನ್ನು ನೀಡುತ್ತದೆ. ನೀವು ವ್ಯೂ CLI ಬಳಸಿ ವ್ಯೂ ಪ್ರಾಜೆಕ್ಟ್ ಅನ್ನು ರಚಿಸಿದಾಗ, HMR ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಕಾನ್ಫಿಗರ್ ಆಗುತ್ತದೆ. ವ್ಯೂ CLI ತೆರೆಮರೆಯಲ್ಲಿ ವೆಬ್ಪ್ಯಾಕ್ ಅನ್ನು ಬಳಸುತ್ತದೆ ಮತ್ತು HMR ಸುಗಮವಾಗಿ ಕೆಲಸ ಮಾಡಲು ಅಗತ್ಯವಾದ ಕಾನ್ಫಿಗರೇಶನ್ಗಳನ್ನು ಹೊಂದಿಸುತ್ತದೆ.
ನೀವು ವ್ಯೂ ಜೊತೆ ವೆಬ್ಪ್ಯಾಕ್ ಅನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಕಾನ್ಫಿಗರ್ ಮಾಡುತ್ತಿದ್ದರೆ, `vue-loader` ಮತ್ತು `HotModuleReplacementPlugin` ಅನ್ನು ಸಾಮಾನ್ಯ ವೆಬ್ಪ್ಯಾಕ್ ಉದಾಹರಣೆಯಲ್ಲಿ ವಿವರಿಸಿದಂತೆ ಬಳಸಿ, ಮತ್ತು ನಿಮ್ಮ ವ್ಯೂ ಕಾಂಪೊನೆಂಟ್ಗಳು HMR ಈವೆಂಟ್ಗಳನ್ನು ಸೂಕ್ತವಾಗಿ ನಿರ್ವಹಿಸುತ್ತವೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
ಆಂಗುಲರ್
ಆಂಗುಲರ್ ಸಹ HMR ಅನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ, ಆದಾಗ್ಯೂ ಸೆಟಪ್ ರಿಯಾಕ್ಟ್ ಅಥವಾ ವ್ಯೂಗಿಂತ ಸ್ವಲ್ಪ ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾಗಿರಬಹುದು. ನಿಮ್ಮ ಆಂಗುಲರ್ ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ HMR ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ನೀವು `@angularclass/hmr` ಪ್ಯಾಕೇಜ್ ಅನ್ನು ಬಳಸಬಹುದು.
`@angularclass/hmr` ಅನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ
npm install @angularclass/hmr --save-dev
`main.ts` ಅನ್ನು ಮಾರ್ಪಡಿಸಿ
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import { enableProdMode } from '@angular/core';
import { environment } from './environments/environment';
import { hmrBootstrap } from './hmr';
if (environment.production) {
enableProdMode();
}
const bootstrap = () => {
return platformBrowserDynamic().bootstrapModule(AppModule);
};
if (environment.hmr) {
if (module['hot']) {
hmrBootstrap(module, bootstrap);
} else {
console.error('HMR is not enabled for webpack-dev-server!');
console.log('Are you using the --hmr flag in ng serve?');
}
} else {
bootstrap().catch(err => console.error(err));
}
ಆಂಗುಲರ್ CLI ಅನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಿ
HMR ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲು ನಿಮ್ಮ `angular.json` ಫೈಲ್ ಅನ್ನು ನವೀಕರಿಸಿ. `serve` ವಿಭಾಗದ ಅಡಿಯಲ್ಲಿ ಹೊಸ ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಸೇರಿಸಿ:
"configurations": {
"hmr": {
"hmr": true
}
}
HMR ನೊಂದಿಗೆ ರನ್ ಮಾಡಿ
ng serve --configuration hmr
HMR ಸಮಸ್ಯೆಗಳನ್ನು ನಿವಾರಿಸುವುದು
HMR ಒಂದು ಶಕ್ತಿಯುತ ಸಾಧನವಾಗಿದ್ದರೂ, ಕೆಲವೊಮ್ಮೆ ಅದನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಮತ್ತು ನಿವಾರಿಸಲು ಕಷ್ಟವಾಗಬಹುದು. ಕೆಲವು ಸಾಮಾನ್ಯ ಸಮಸ್ಯೆಗಳು ಮತ್ತು ಅವುಗಳ ಪರಿಹಾರಗಳು ಇಲ್ಲಿವೆ:
- HMR ಬದಲಿಗೆ ಪೂರ್ಣ ಪುಟ ರಿಲೋಡ್ಗಳು: ಇದು ಸಾಮಾನ್ಯವಾಗಿ ತಪ್ಪಾದ ವೆಬ್ಪ್ಯಾಕ್ ಕಾನ್ಫಿಗರೇಶನ್ನಿಂದ ಉಂಟಾಗುತ್ತದೆ, ಉದಾಹರಣೆಗೆ `HotModuleReplacementPlugin` ಇಲ್ಲದಿರುವುದು ಅಥವಾ ತಪ್ಪಾದ `publicPath`. ನಿಮ್ಮ `webpack.config.js` ಫೈಲ್ ಅನ್ನು ಎರಡು ಬಾರಿ ಪರಿಶೀಲಿಸಿ. ಅಲ್ಲದೆ, ಕ್ಲೈಂಟ್-ಸೈಡ್ ಕೋಡ್ ಹಾಟ್ ಅಪ್ಡೇಟ್ಗಳನ್ನು ಸ್ವೀಕರಿಸುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
- ಅಪ್ಲಿಕೇಶನ್ ಸ್ಥಿತಿ ಸಂರಕ್ಷಿಸದಿರುವುದು: HMR ನವೀಕರಣಗಳ ಸಮಯದಲ್ಲಿ ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ ಸ್ಥಿತಿ ಸಂರಕ್ಷಿಸಲ್ಪಡದಿದ್ದರೆ, ಅದು ನಿಮ್ಮ ಕಾಂಪೊನೆಂಟ್ಗಳನ್ನು ರಚಿಸಿದ ರೀತಿ ಅಥವಾ ನೀವು ಸ್ಥಿತಿಯನ್ನು ನಿರ್ವಹಿಸುವ ರೀತಿಯಿಂದಾಗಿರಬಹುದು. ನಿಮ್ಮ ಕಾಂಪೊನೆಂಟ್ಗಳು ನವೀಕರಣಗಳನ್ನು ಸರಾಗವಾಗಿ ನಿರ್ವಹಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ ಮತ್ತು ನಿಮ್ಮ ಸ್ಥಿತಿ ನಿರ್ವಹಣಾ ಪರಿಹಾರ (ಉದಾ., Redux, Vuex) HMR ನೊಂದಿಗೆ ಹೊಂದಿಕೊಳ್ಳುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
- ಕೆಲವು ಮಾಡ್ಯೂಲ್ಗಳೊಂದಿಗೆ HMR ಕೆಲಸ ಮಾಡದಿರುವುದು: ಕೆಲವು ಮಾಡ್ಯೂಲ್ಗಳು ಬಾಕ್ಸ್ನಿಂದಲೇ HMR ನೊಂದಿಗೆ ಹೊಂದಿಕೆಯಾಗದಿರಬಹುದು. ಈ ಮಾಡ್ಯೂಲ್ಗಳ ನವೀಕರಣಗಳನ್ನು ನಿರ್ವಹಿಸಲು ನೀವು ನಿರ್ದಿಷ್ಟ ಕೋಡ್ ಅನ್ನು ಸೇರಿಸಬೇಕಾಗಬಹುದು. ನೀವು ಬಳಸುತ್ತಿರುವ ನಿರ್ದಿಷ್ಟ ಲೈಬ್ರರಿ ಅಥವಾ ಫ್ರೇಮ್ವರ್ಕ್ನ ದಸ್ತಾವೇಜನ್ನು ನೋಡಿ.
- ಸಂಘರ್ಷದ ಡಿಪೆಂಡೆನ್ಸಿಗಳು: ಡಿಪೆಂಡೆನ್ಸಿ ಸಂಘರ್ಷಗಳು ಕೆಲವೊಮ್ಮೆ HMR ಗೆ ಅಡ್ಡಿಪಡಿಸಬಹುದು. ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್ನ ಡಿಪೆಂಡೆನ್ಸಿಗಳು ನವೀಕೃತವಾಗಿವೆ ಮತ್ತು ಯಾವುದೇ ಸಂಘರ್ಷದ ಆವೃತ್ತಿಗಳಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ. ಲಾಕ್ಫೈಲ್ (`package-lock.json` ಅಥವಾ `yarn.lock`) ಬಳಸುವುದರಿಂದ ಪರಿಸರಗಳಾದ್ಯಂತ ಸ್ಥಿರವಾದ ಡಿಪೆಂಡೆನ್ಸಿ ಆವೃತ್ತಿಗಳನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
HMR ಬಳಸಲು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳು
HMR ನಿಂದ ಹೆಚ್ಚಿನದನ್ನು ಪಡೆಯಲು, ಈ ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಪರಿಗಣಿಸಿ:
- ಕಾಂಪೊನೆಂಟ್ಗಳನ್ನು ಚಿಕ್ಕದಾಗಿ ಮತ್ತು ಮಾಡ್ಯುಲರ್ ಆಗಿ ಇರಿಸಿ: ಚಿಕ್ಕ, ಹೆಚ್ಚು ಮಾಡ್ಯುಲರ್ ಕಾಂಪೊನೆಂಟ್ಗಳನ್ನು HMR ನೊಂದಿಗೆ ನವೀಕರಿಸಲು ಮತ್ತು ಡೀಬಗ್ ಮಾಡಲು ಸುಲಭವಾಗಿರುತ್ತದೆ.
- ಸ್ಥಿತಿ ನಿರ್ವಹಣಾ ಪರಿಹಾರವನ್ನು ಬಳಸಿ: ಉತ್ತಮವಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾದ ಸ್ಥಿತಿ ನಿರ್ವಹಣಾ ಪರಿಹಾರವು HMR ನವೀಕರಣಗಳ ಸಮಯದಲ್ಲಿ ಅಪ್ಲಿಕೇಶನ್ ಸ್ಥಿತಿಯನ್ನು ಸಂರಕ್ಷಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
- ನಿಮ್ಮ HMR ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಪರೀಕ್ಷಿಸಿ: ಅಭಿವೃದ್ಧಿ ಮತ್ತು ಪರೀಕ್ಷೆ ಸೇರಿದಂತೆ ಎಲ್ಲಾ ಪರಿಸರಗಳಲ್ಲಿ HMR ಸರಿಯಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆಯೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
- ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಿ: HMR ಅಭಿವೃದ್ಧಿ ವೇಗವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸುಧಾರಿಸಬಹುದಾದರೂ, ಅದನ್ನು ಎಚ್ಚರಿಕೆಯಿಂದ ಬಳಸದಿದ್ದರೆ ಕಾರ್ಯಕ್ಷಮತೆಯ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರಬಹುದು. ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ನ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಿ ಮತ್ತು ಅಗತ್ಯವಿದ್ದರೆ ನಿಮ್ಮ HMR ಕಾನ್ಫಿಗರೇಶನ್ ಅನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡಿ.
ಜಾಗತಿಕ ಅಭಿವೃದ್ಧಿ ಸಂದರ್ಭದಲ್ಲಿ HMR
ಜಾಗತಿಕವಾಗಿ ವಿತರಿಸಲಾದ ತಂಡಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ HMR ನ ಪ್ರಯೋಜನಗಳು ವರ್ಧಿಸುತ್ತವೆ. ಸ್ಥಳವನ್ನು ಲೆಕ್ಕಿಸದೆ ಬದಲಾವಣೆಗಳನ್ನು ತಕ್ಷಣವೇ ನೋಡುವ ಸಾಮರ್ಥ್ಯವು ಉತ್ತಮ ಸಹಯೋಗವನ್ನು ಉತ್ತೇಜಿಸುತ್ತದೆ ಮತ್ತು ಸಂವಹನ ಹೊರೆ ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. ನ್ಯೂಯಾರ್ಕ್ನಲ್ಲಿರುವ ಡಿಸೈನರ್ ಮಾಡಿದ CSS ಬದಲಾವಣೆಯ ಪರಿಣಾಮವನ್ನು ಬೆಂಗಳೂರಿನ ಡೆವಲಪರ್ ತಕ್ಷಣವೇ ನೋಡಬಹುದು, ಇದು ವೇಗದ ಫೀಡ್ಬ್ಯಾಕ್ ಲೂಪ್ಗಳು ಮತ್ತು ಉತ್ತಮ ಗುಣಮಟ್ಟದ ಕೋಡ್ಗೆ ಕಾರಣವಾಗುತ್ತದೆ.
ಇದಲ್ಲದೆ, HMR ಸಮಯ ವಲಯದ ವ್ಯತ್ಯಾಸಗಳಿಂದ ಉಂಟಾಗುವ ಅಂತರವನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ತಂಡದ ಸದಸ್ಯರು ಆಫ್ಲೈನ್ನಲ್ಲಿದ್ದಾಗಲೂ ಡೆವಲಪರ್ಗಳು ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು ಪರಿಹಾರಗಳ ಮೇಲೆ ತ್ವರಿತವಾಗಿ ಪುನರಾವರ್ತಿಸಬಹುದು, ಭೌಗೋಳಿಕ ನಿರ್ಬಂಧಗಳಿಂದ ಪ್ರಗತಿಯು ಸ್ಥಗಿತಗೊಳ್ಳುವುದಿಲ್ಲ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ. ದಿನದ ಅಂತ್ಯದ ಮೊದಲು ನಿಯೋಜಿಸಬೇಕಾದ ನಿರ್ಣಾಯಕ ಬಗ್ ಫಿಕ್ಸ್ನಲ್ಲಿ ಕೆಲಸ ಮಾಡುವ ತಂಡವನ್ನು ಕಲ್ಪಿಸಿಕೊಳ್ಳಿ. HMR ನೊಂದಿಗೆ, ಡೆವಲಪರ್ಗಳು ತಮ್ಮ ಬದಲಾವಣೆಗಳನ್ನು ವೇಗವಾಗಿ ಪರೀಕ್ಷಿಸಬಹುದು ಮತ್ತು ಪರಿಷ್ಕರಿಸಬಹುದು, ಹೊಸ ಸಮಸ್ಯೆಗಳನ್ನು ಪರಿಚಯಿಸುವ ಅಪಾಯವನ್ನು ಕಡಿಮೆ ಮಾಡಬಹುದು ಮತ್ತು ಸುಗಮ ನಿಯೋಜನೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬಹುದು.
ಉದಾಹರಣೆ: ಅಡ್ಡ-ಸಮಯ ವಲಯ ಸಹಯೋಗ
ಬರ್ಲಿನ್, ಸ್ಯಾನ್ ಫ್ರಾನ್ಸಿಸ್ಕೋ, ಮತ್ತು ಟೋಕಿಯೊದಲ್ಲಿ ಸದಸ್ಯರಿರುವ ಅಭಿವೃದ್ಧಿ ತಂಡವು ಸಂಕೀರ್ಣವಾದ ಇ-ಕಾಮರ್ಸ್ ಪ್ಲಾಟ್ಫಾರ್ಮ್ ಅನ್ನು ನಿರ್ಮಿಸುತ್ತಿದೆ. ಫ್ರಂಟ್-ಎಂಡ್ ತಂಡವು HMR ಅನ್ನು ವ್ಯಾಪಕವಾಗಿ ಬಳಸಿಕೊಳ್ಳುತ್ತದೆ. ಬರ್ಲಿನ್ನಲ್ಲಿರುವ ಡೆವಲಪರ್ ಹೊಸ ಉತ್ಪನ್ನ ವಿವರ ಕಾಂಪೊನೆಂಟ್ ಅನ್ನು ಅಳವಡಿಸುತ್ತಾರೆ. ಅವರು ಅಭಿವೃದ್ಧಿಪಡಿಸುತ್ತಿದ್ದಂತೆ, ಸ್ಯಾನ್ ಫ್ರಾನ್ಸಿಸ್ಕೋ-ಆಧಾರಿತ ಡಿಸೈನರ್ ತಕ್ಷಣವೇ ದೃಶ್ಯ ನೋಟವನ್ನು ಪರಿಶೀಲಿಸಬಹುದು ಮತ್ತು ಪ್ರತಿಕ್ರಿಯೆ ನೀಡಬಹುದು. ನಂತರ, ಟೋಕಿಯೊ ತಂಡವು ತಮ್ಮ ದಿನವನ್ನು ಪ್ರಾರಂಭಿಸಿದಾಗ, ಅವರು ಸುಲಭವಾಗಿ ಹೊಸ ಕಾಂಪೊನೆಂಟ್ ಅನ್ನು ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಸಿಸ್ಟಮ್ಗೆ ಸಂಯೋಜಿಸಬಹುದು, HMR ಗೆ ಧನ್ಯವಾದಗಳು ಯಾವುದೇ ಅಗತ್ಯ ಹೊಂದಾಣಿಕೆಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಮತ್ತು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಮಾಡಬಹುದು ಎಂದು ತಿಳಿದಿರುತ್ತಾರೆ.
ತೀರ್ಮಾನ
ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮಾಡ್ಯೂಲ್ ಹಾಟ್ ರಿಪ್ಲೇಸ್ಮೆಂಟ್ ಒಂದು ಶಕ್ತಿಯುತ ಸಾಧನವಾಗಿದ್ದು, ಇದು ನಿಮ್ಮ ಅಭಿವೃದ್ಧಿ ವರ್ಕ್ಫ್ಲೋ ಅನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಹೆಚ್ಚಿಸುತ್ತದೆ, ವಿಶೇಷವಾಗಿ ಜಾಗತಿಕವಾಗಿ ವಿತರಿಸಲಾದ ತಂಡಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ. ವೇಗದ ಪುನರಾವರ್ತನೆಯ ಸೈಕಲ್ಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವ ಮೂಲಕ, ಅಪ್ಲಿಕೇಶನ್ ಸ್ಥಿತಿಯನ್ನು ಸಂರಕ್ಷಿಸುವ ಮೂಲಕ, ಮತ್ತು ಡೀಬಗ್ಗಿಂಗ್ ಅನುಭವವನ್ನು ಸುಧಾರಿಸುವ ಮೂಲಕ, HMR ಡೆವಲಪರ್ ಉತ್ಪಾದಕತೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ ಮತ್ತು ಉತ್ತಮ-ಗುಣಮಟ್ಟದ ಕೋಡ್ಗೆ ಕಾರಣವಾಗುತ್ತದೆ. ನೀವು ರಿಯಾಕ್ಟ್, ವ್ಯೂ, ಆಂಗುಲರ್, ಅಥವಾ ವ್ಯಾನಿಲಾ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಬಳಸುತ್ತಿರಲಿ, ನಿಮ್ಮ ಅಭಿವೃದ್ಧಿ ಪ್ರಕ್ರಿಯೆಯಲ್ಲಿ HMR ಅನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳುವುದು ದೀರ್ಘಾವಧಿಯಲ್ಲಿ ಲಾಭಾಂಶವನ್ನು ಪಾವತಿಸುವ ಒಂದು ಯೋಗ್ಯ ಹೂಡಿಕೆಯಾಗಿದೆ. ಅಭಿವೃದ್ಧಿ ಅಭ್ಯಾಸಗಳು ವಿಕಸನಗೊಳ್ಳುತ್ತಲೇ ಇರುವುದರಿಂದ, HMR ನಂತಹ ತಂತ್ರಗಳನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳುವುದು ಸ್ಪರ್ಧಾತ್ಮಕವಾಗಿ ಉಳಿಯಲು ಮತ್ತು ಅಸಾಧಾರಣ ವೆಬ್ ಅನುಭವಗಳನ್ನು ನೀಡಲು ಅತ್ಯಗತ್ಯವಾಗಿರುತ್ತದೆ.