ಈ ಉಪಕರಣದ ಬಗ್ಗೆ
ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮಿನಿಫಿಕೇಶನ್ ಅನಗತ್ಯ ಅಕ್ಷರಗಳನ್ನು ತೆಗೆದುಹಾಕುವ ಮೂಲಕ ಮತ್ತು (ಸರಿಯಾದ ಮಿನಿಫೈಯರ್ಗಳೊಂದಿಗೆ) ಸ್ಥಳೀಯ ವೇರಿಯಬಲ್ಗಳನ್ನು ಚಿಕ್ಕ ಹೆಸರುಗಳಿಗೆ ಮರುಹೆಸರಿಸುವ ಮೂಲಕ ಮೂಲ ಕೋಡ್ನ ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. ಮೊದಲ ವರ್ಗ - ವೈಟ್ಸ್ಪೇಸ್ ಮತ್ತು ಕಾಮೆಂಟ್ ತೆಗೆಯುವಿಕೆ - ನೇರ ಮತ್ತು ಅಪಾಯ-ಮುಕ್ತವಾಗಿದೆ. ಎರಡನೆಯದು - ವೇರಿಯಬಲ್ ಮರುಹೆಸರಿಸುವಿಕೆ - ಸ್ಕೋಪ್ ನಿಯಮಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವ ಅಗತ್ಯವಿದೆ ಮತ್ತು ಟೆರ್ಸರ್ ಮತ್ತು ಎಸ್ಬಿಲ್ಡ್ನಂತಹ ಉತ್ಪಾದನಾ ಮಿನಿಫೈಯರ್ಗಳು ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ.
ಈ ಉಪಕರಣವು ಸುರಕ್ಷಿತವಾದ ಮಿನಿಫಿಕೇಶನ್ನಲ್ಲಿ ಕೇಂದ್ರೀಕರಿಸುತ್ತದೆ: ಕಾಮೆಂಟ್ಗಳನ್ನು ತೆಗೆದುಹಾಕುವುದು, ವೈಟ್ಸ್ಪೇಸ್ ಅನ್ನು ಕುಗ್ಗಿಸುವುದು, ಅನಗತ್ಯ ಅರ್ಧವಿರಾಮ ಚಿಹ್ನೆಗಳನ್ನು ತೆಗೆದುಹಾಕುವುದು ಮತ್ತು ಸ್ಪಷ್ಟ ಮಾದರಿಗಳನ್ನು ಕಡಿಮೆಗೊಳಿಸುವುದು. ವೇರಿಯಬಲ್ ಮರುನಾಮಕರಣವು ಸಂಪ್ರದಾಯವಾದಿಯಾಗಿದೆ - ಸ್ಪಷ್ಟ ವ್ಯಾಪ್ತಿಗಳಲ್ಲಿ ಸ್ಥಳೀಯ ಅಸ್ಥಿರಗಳನ್ನು ಮಾತ್ರ ಸ್ಪರ್ಶಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಬಾಹ್ಯವಾಗಿ-ಉಲ್ಲೇಖಿತ ಹೆಸರುಗಳನ್ನು ಮಾತ್ರ ಬಿಡಲಾಗುತ್ತದೆ. ಫಲಿತಾಂಶವು ಮೂಲಕ್ಕೆ ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಹೋಲುತ್ತದೆ.
ಪ್ರೊಡಕ್ಷನ್-ಗ್ರೇಡ್ ಮಿನಿಫಿಕೇಶನ್ಗಾಗಿ, ಡೆಡಿಕೇಟೆಡ್ ಟೂಲ್ಗಳು (ಟೆರ್ಸರ್, ಎಸ್ಬಿಲ್ಡ್, ಎಸ್ಡಬ್ಲ್ಯೂಸಿ) ಸಂಪೂರ್ಣ ECMAScript ಸ್ಕೋಪ್ ಮಾಡೆಲ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುತ್ತವೆ ಮತ್ತು ಗಮನಾರ್ಹವಾಗಿ ಕಡಿಮೆ ಔಟ್ಪುಟ್ ಅನ್ನು ಉತ್ಪಾದಿಸುತ್ತವೆ. ಪೂರ್ಣ ಬಿಲ್ಡ್ ಸೆಟಪ್ ಲಭ್ಯವಿಲ್ಲದಿದ್ದಾಗ ಈ ಉಪಕರಣವು ತ್ವರಿತ ಬ್ರೌಸರ್-ಸೈಡ್ ಮಿನಿಫಿಕೇಶನ್ಗಾಗಿ ಆಗಿದೆ.
ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಏಕೆ ಕಡಿಮೆ ಮಾಡಿ
ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಬಂಡಲ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಆಧುನಿಕ ವೆಬ್ಪುಟದಲ್ಲಿ ಅತಿದೊಡ್ಡ ಏಕ ಸಂಪನ್ಮೂಲವಾಗಿದೆ. ಮಿನಿಫಿಕೇಶನ್ ವಾಡಿಕೆಯಂತೆ 30-60% ಗಾತ್ರದ ಕಡಿತವನ್ನು ಅನಿಯಂತ್ರಿತ ಮೂಲದ ವಿರುದ್ಧ ಉತ್ಪಾದಿಸುತ್ತದೆ. gzip ಅಥವಾ Brotli ನೊಂದಿಗೆ ಸಂಯೋಜಿತವಾಗಿ, ಕಡಿತವು ಸ್ವಲ್ಪಮಟ್ಟಿಗೆ ಕುಗ್ಗುತ್ತದೆ, ಆದರೆ ಸಂಯೋಜನೆಯು ಇನ್ನೂ ಅಳೆಯಬಹುದಾದ ಬೈಟ್ಗಳನ್ನು ಉಳಿಸುತ್ತದೆ - ವಿಶೇಷವಾಗಿ ನಿಧಾನ ಸಂಪರ್ಕದಲ್ಲಿರುವ ಬಳಕೆದಾರರಿಗೆ.
ವೇಗವಾದ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಎಂದರೆ ಇಂಟರಾಕ್ಟಿವ್ಗೆ ವೇಗವಾದ ಸಮಯ. ಚಿಕ್ಕ ಸ್ಕ್ರಿಪ್ಟ್ಗಳು ವೇಗವಾಗಿ ಡೌನ್ಲೋಡ್ ಆಗುತ್ತವೆ, ವೇಗವಾಗಿ ಪಾರ್ಸ್ ಆಗುತ್ತವೆ ಮತ್ತು ಬೇಗ ಕಾರ್ಯಗತಗೊಳ್ಳುತ್ತವೆ. TTI ಬೌನ್ಸ್ ದರಗಳು ಮತ್ತು SEO ಶ್ರೇಯಾಂಕದ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುವ ಸೈಟ್ಗಳಿಗೆ, ಕಡಿಮೆಗೊಳಿಸುವಿಕೆಯು ಲಭ್ಯವಿರುವ ಅಗ್ಗದ ಗೆಲುವುಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ.
ತಾಂತ್ರಿಕ ವಿವರಗಳು
ಮಿನಿಫೈಯರ್ ECMAScript ಸಿಂಟ್ಯಾಕ್ಸ್ ಅನ್ನು ಗೌರವಿಸುವ ಪಾರ್ಸರ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು JavaScript ಅನ್ನು ಟೋಕನೈಸ್ ಮಾಡುತ್ತದೆ. /* ಎಂದು ಗುರುತಿಸಲಾದ ಪರವಾನಗಿ ಕಾಮೆಂಟ್ಗಳನ್ನು ಹೊರತುಪಡಿಸಿ ಕಾಮೆಂಟ್ಗಳನ್ನು (ಏಕ-ಸಾಲು ಮತ್ತು ಬಹು-ಸಾಲು) ತೆಗೆದುಹಾಕಲಾಗಿದೆ! ಪೂರ್ವಪ್ರತ್ಯಯ. ವಾಕ್ಯರಚನೆಯ ಅಗತ್ಯವಿರುವಲ್ಲಿ ಹೊರತುಪಡಿಸಿ ವೈಟ್ಸ್ಪೇಸ್ ಕುಸಿದಿದೆ (ಗುರುತಿಸುವಿಕೆಯ ನಡುವೆ, ಕೀವರ್ಡ್ಗಳ ನಂತರ).
ಕನ್ಸರ್ವೇಟಿವ್ ವೇರಿಯಬಲ್ ಮರುನಾಮಕರಣವು ಸ್ಥಳೀಯ ಅಸ್ಥಿರಗಳನ್ನು ನೇರ ವ್ಯಾಪ್ತಿಗಳಲ್ಲಿ ಕಡಿಮೆಗೊಳಿಸುತ್ತದೆ. ಗ್ಲೋಬಲ್ಸ್, ರಫ್ತುಗಳು ಮತ್ತು ಆಮದು ಮಾಡಿದ ಹೆಸರುಗಳನ್ನು ಮರುಹೆಸರಿಸಲಾಗಿಲ್ಲ - ಅದು ಬಾಹ್ಯ ಉಲ್ಲೇಖಗಳನ್ನು ಮುರಿಯುತ್ತದೆ. ಆಳವಾದ ಮರುನಾಮಕರಣಕ್ಕಾಗಿ, ಸರಿಯಾದ ಮಾಡ್ಯೂಲ್-ಅರಿವು ವಿಶ್ಲೇಷಣೆಯೊಂದಿಗೆ ಟೆರ್ಸರ್ ಅಥವಾ ಎಸ್ಬಿಲ್ಡ್ ಅನ್ನು ಬಳಸಿ.
ಎಡ್ಜ್ ಪ್ರಕರಣಗಳು: ಸ್ವಯಂಚಾಲಿತ ಸೆಮಿಕೋಲನ್ ಅಳವಡಿಕೆ (ASI) ಎಂದರೆ ಪ್ರೋಗ್ರಾಂ ನಡವಳಿಕೆಯನ್ನು ಬದಲಾಯಿಸುವುದನ್ನು ತಪ್ಪಿಸಲು ಮಿನಿಫೈಯರ್ ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ ಹೊಸ ಸಾಲುಗಳನ್ನು ಸಂರಕ್ಷಿಸಬೇಕು. ಟೆಂಪ್ಲೇಟ್ ಲಿಟರಲ್ಸ್, ರೆಜೆಕ್ಸ್ ಲಿಟರಲ್ಸ್ ಮತ್ತು JSX (ಇನ್ಪುಟ್ ಅದನ್ನು ಒಳಗೊಂಡಿದ್ದರೆ) ನಿಖರವಾಗಿ ಸಂರಕ್ಷಿಸಲಾಗಿದೆ ಏಕೆಂದರೆ ಅವುಗಳ ವಿಷಯಗಳನ್ನು ಸಂಕುಚಿತಗೊಳಿಸಲು ಸುರಕ್ಷಿತವಾಗಿರುವುದಿಲ್ಲ.
ಪದೇ ಪದೇ ಕೇಳಲಾಗುವ ಪ್ರಶ್ನೆಗಳು
- ಮಿನಿಫಿಕೇಶನ್ ನನ್ನ ಕೋಡ್ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಬದಲಾಯಿಸುತ್ತದೆಯೇ?
- ಇಲ್ಲ. ಮಿನಿಫಿಕೇಶನ್ ವೈಟ್ಸ್ಪೇಸ್ ಮತ್ತು ಕಾಮೆಂಟ್ಗಳನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ, ಇದು ಕಾರ್ಯಗತಗೊಳಿಸುವಿಕೆಯ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುವುದಿಲ್ಲ. ವೇರಿಯಬಲ್ ಶಾರ್ಟನಿಂಗ್ (ಮ್ಯಾಂಗ್ಲಿಂಗ್) ಸ್ಥಳೀಯ ಅಸ್ಥಿರಗಳನ್ನು ಮರುಹೆಸರಿಸುತ್ತದೆ ಆದರೆ ನಡವಳಿಕೆಯನ್ನು ಸಂರಕ್ಷಿಸುತ್ತದೆ. ಜಾಗತಿಕ ವೇರಿಯಬಲ್ಗಳು ಮತ್ತು ರಫ್ತು ಮಾಡಿದ ಹೆಸರುಗಳನ್ನು ಹಾಗೇ ಇರಿಸಲಾಗುತ್ತದೆ.
- ಅಭಿವೃದ್ಧಿ ಅಥವಾ ಉತ್ಪಾದನೆಯಲ್ಲಿ ನಾನು ಕಡಿಮೆಗೊಳಿಸಬೇಕೇ?
- ಉತ್ಪಾದನೆಯಲ್ಲಿ ಮಿನಿಫೈಡ್ ಕೋಡ್ ಅನ್ನು ಮಾತ್ರ ಬಳಸಿ. ಅಭಿವೃದ್ಧಿಯ ಸಮಯದಲ್ಲಿ, ಮೂಲ ಓದಬಹುದಾದ ಕೋಡ್ ಅನ್ನು ಇರಿಸಿಕೊಳ್ಳಿ. ಹೆಚ್ಚಿನ ನಿರ್ಮಾಣ ಉಪಕರಣಗಳು (ವೆಬ್ಪ್ಯಾಕ್, ವೈಟ್, ಎಸ್ಬಿಲ್ಡ್) ಉತ್ಪಾದನಾ ನಿರ್ಮಾಣ ಪ್ರಕ್ರಿಯೆಯ ಭಾಗವಾಗಿ ಮಿನಿಫಿಕೇಶನ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿರ್ವಹಿಸುತ್ತವೆ.
- ಮಿನಿಫಿಕೇಶನ್ ಮತ್ತು ಅಸ್ಪಷ್ಟತೆಯ ನಡುವಿನ ವ್ಯತ್ಯಾಸವೇನು?
- ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿದಲ್ಲಿ ಕೋಡ್ ಅನ್ನು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಓದಲು ಸಾಧ್ಯವಾಗುವಂತೆ ಮಿನಿಫಿಕೇಶನ್ ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. ಅಸ್ಪಷ್ಟತೆಯು ಉದ್ದೇಶಪೂರ್ವಕವಾಗಿ ಕೋಡ್ ಅನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಕಷ್ಟಕರವಾಗಿಸುತ್ತದೆ (ಸ್ಟ್ರಿಂಗ್ ಎನ್ಕೋಡಿಂಗ್, ಕಂಟ್ರೋಲ್ ಫ್ಲೋ ಫ್ಲಾಟೆನಿಂಗ್). ಈ ಉಪಕರಣವು ಗಾತ್ರ ಕಡಿತದ ಮೇಲೆ ಕೇಂದ್ರೀಕರಿಸುತ್ತದೆ, ಅಸ್ಪಷ್ಟತೆಯಲ್ಲ.
- ನಾನು ಎಷ್ಟು ಗಾತ್ರದ ಕಡಿತವನ್ನು ನಿರೀಕ್ಷಿಸಬೇಕು?
- ಸಾಮಾನ್ಯವಾಗಿ 30-60% gzip ಮೊದಲು. ದೀರ್ಘ ವೇರಿಯಬಲ್ ಹೆಸರುಗಳೊಂದಿಗೆ ಉತ್ತಮವಾಗಿ ಕಾಮೆಂಟ್ ಮಾಡಲಾದ ಕೋಡ್ ದೊಡ್ಡ ಕಡಿತವನ್ನು ನೋಡುತ್ತದೆ. ಜಿಜಿಪ್ ಕಂಪ್ರೆಷನ್ನೊಂದಿಗೆ ಸಂಯೋಜಿತವಾಗಿ, ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಫೈಲ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಮೂಲ ಮೂಲಕ್ಕಿಂತ 80-90% ಚಿಕ್ಕದಾಗಿದೆ.
- ನನ್ನ ಕೋಡ್ ಅನ್ನು ಸರ್ವರ್ಗೆ ಅಪ್ಲೋಡ್ ಮಾಡಲಾಗಿದೆಯೇ?
- ಇಲ್ಲ. ಮಿನಿಫೈಯರ್ ನಿಮ್ಮ ಬ್ರೌಸರ್ನಲ್ಲಿ ರನ್ ಆಗುತ್ತದೆ.
- ನನ್ನ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಎಷ್ಟು ಚಿಕ್ಕದಾಗಿರುತ್ತದೆ?
- ಸಾಮಾನ್ಯವಾಗಿ 30-60% ಕಡಿತ. ದೀರ್ಘ ಗುರುತಿಸುವಿಕೆಯೊಂದಿಗೆ ವೇರಿಯಬಲ್-ಹೆವಿ ಕೋಡ್ ಹೆಚ್ಚು ಸಂಕುಚಿತಗೊಳಿಸುತ್ತದೆ; ಅಭಿವ್ಯಕ್ತಿ-ಭಾರೀ ಕೋಡ್ ಕಡಿಮೆ ಸಂಕುಚಿತಗೊಳಿಸುತ್ತದೆ.
- ನಾನು ಕೈಯಿಂದ ಕಡಿಮೆ ಮಾಡಬೇಕೇ?
- ಎಂದಿಗೂ ಇಲ್ಲ. ಮೂಲದಲ್ಲಿ ಓದಬಹುದಾದ JavaScript ಅನ್ನು ನಿರ್ವಹಿಸಿ. ನಿರ್ಮಾಣ ಹಂತವಾಗಿ ಅಥವಾ ನಿಯೋಜನೆಯ ಭಾಗವಾಗಿ ಮಿನಿಫಿಕೇಶನ್ ಅನ್ನು ರನ್ ಮಾಡಿ.
- ಇದು ಟೈಪ್ಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆಯೇ?
- ಟೈಪ್ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಮೊದಲು tsc ಅಥವಾ esbuild ಬಳಸಿ JavaScript ಗೆ ಕಂಪೈಲ್ ಮಾಡಬೇಕಾಗುತ್ತದೆ. ಕಂಪೈಲ್ ಮಾಡಿದ ನಂತರ, ಪರಿಣಾಮವಾಗಿ ಬರುವ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಚಿಕ್ಕದಾಗಿಸಬಹುದು.