ಫ್ರಂಟ್ಎಂಡ್ ಮೊನೊರೆಪೊ ಡೆವಲಪ್ಮೆಂಟ್ಗಾಗಿ Nx ವರ್ಕ್ಸ್ಪೇಸ್ಗಳನ್ನು ಹೇಗೆ ಬಳಸಿಕೊಳ್ಳುವುದು, ಕೋಡ್ ಶೇರಿಂಗ್, ಬಿಲ್ಡ್ ಪರ್ಫಾರ್ಮೆನ್ಸ್, ಮತ್ತು ತಂಡಗಳು ಹಾಗೂ ಪ್ರಾಜೆಕ್ಟ್ಗಳಾದ್ಯಂತ ಡೆವಲಪರ್ ಸಹಯೋಗವನ್ನು ಸುಧಾರಿಸುವುದು ಹೇಗೆಂದು ತಿಳಿಯಿರಿ.
ಫ್ರಂಟ್ಎಂಡ್ Nx ವರ್ಕ್ಸ್ಪೇಸ್: ಸ್ಕೇಲೆಬಲ್ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗಾಗಿ ಮೊನೊರೆಪೊ ಡೆವಲಪ್ಮೆಂಟ್
ಇಂದಿನ ವೇಗದ ಸಾಫ್ಟ್ವೇರ್ ಡೆವಲಪ್ಮೆಂಟ್ ಕ್ಷೇತ್ರದಲ್ಲಿ, ದೊಡ್ಡ ಪ್ರಮಾಣದ ಫ್ರಂಟ್ಎಂಡ್ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ನಿರ್ಮಿಸುವುದು ಮತ್ತು ನಿರ್ವಹಿಸುವುದು ಸವಾಲಿನದ್ದಾಗಿರಬಹುದು. ಪ್ರಾಜೆಕ್ಟ್ಗಳು ಬೆಳೆದಂತೆಲ್ಲಾ ಡಿಪೆಂಡೆನ್ಸಿಗಳನ್ನು ನಿರ್ವಹಿಸುವುದು, ಕೋಡ್ ಸ್ಥಿರತೆಯನ್ನು ಖಚಿತಪಡಿಸುವುದು, ಮತ್ತು ಬಿಲ್ಡ್ ಸಮಯವನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡುವುದು ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾಗುತ್ತದೆ. ಮೊನೊರೆಪೊಗಳು ಬಹು ಪ್ರಾಜೆಕ್ಟ್ಗಳು ಮತ್ತು ಲೈಬ್ರರಿಗಳನ್ನು ಒಂದೇ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಕ್ರೋಢೀಕರಿಸುವ ಮೂಲಕ ಒಂದು ಶಕ್ತಿಯುತ ಪರಿಹಾರವನ್ನು ನೀಡುತ್ತವೆ. Nx, ಒಂದು ಸ್ಮಾರ್ಟ್, ವಿಸ್ತರಿಸಬಲ್ಲ ಬಿಲ್ಡ್ ಸಿಸ್ಟಮ್, ಸುಧಾರಿತ ಟೂಲಿಂಗ್ ಮತ್ತು ಫೀಚರ್ಗಳೊಂದಿಗೆ ಮೊನೊರೆಪೊ ಡೆವಲಪ್ಮೆಂಟ್ ಅನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ.
ಈ ಸಮಗ್ರ ಮಾರ್ಗದರ್ಶಿಯು ಫ್ರಂಟ್ಎಂಡ್ ಮೊನೊರೆಪೊ ಡೆವಲಪ್ಮೆಂಟ್ಗಾಗಿ Nx ವರ್ಕ್ಸ್ಪೇಸ್ ಬಳಸುವುದರ ಪ್ರಯೋಜನಗಳನ್ನು ಪರಿಶೋಧಿಸುತ್ತದೆ, ಇದರಲ್ಲಿ ಪ್ರಮುಖ ಪರಿಕಲ್ಪನೆಗಳು, ಪ್ರಾಯೋಗಿಕ ಉದಾಹರಣೆಗಳು ಮತ್ತು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳು ಸೇರಿವೆ.
ಮೊನೊರೆಪೊ ಎಂದರೇನು?
ಮೊನೊರೆಪೊ ಎಂಬುದು ಒಂದು ಸಾಫ್ಟ್ವೇರ್ ಡೆವಲಪ್ಮೆಂಟ್ ತಂತ್ರವಾಗಿದ್ದು, ಇದರಲ್ಲಿ ಎಲ್ಲಾ ಪ್ರಾಜೆಕ್ಟ್ಗಳು ಮತ್ತು ಅವುಗಳ ಡಿಪೆಂಡೆನ್ಸಿಗಳನ್ನು ಒಂದೇ ರೆಪೊಸಿಟರಿಯಲ್ಲಿ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ. ಈ ವಿಧಾನವು ಸಾಂಪ್ರದಾಯಿಕ ಮಲ್ಟಿ-ರೆಪೊ ವಿಧಾನಕ್ಕೆ ವಿರುದ್ಧವಾಗಿದೆ, ಇದರಲ್ಲಿ ಪ್ರತಿ ಪ್ರಾಜೆಕ್ಟ್ಗೆ ತನ್ನದೇ ಆದ ರೆಪೊಸಿಟರಿ ಇರುತ್ತದೆ.
ಮೊನೊರೆಪೊದ ಪ್ರಮುಖ ಲಕ್ಷಣಗಳು:
- ಸತ್ಯದ ಏಕೈಕ ಮೂಲ (Single Source of Truth): ಎಲ್ಲಾ ಕೋಡ್ ಒಂದೇ ಸ್ಥಳದಲ್ಲಿರುತ್ತದೆ.
- ಕೋಡ್ ಶೇರಿಂಗ್ ಮತ್ತು ಮರುಬಳಕೆ: ಪ್ರಾಜೆಕ್ಟ್ಗಳಾದ್ಯಂತ ಕೋಡ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳುವುದು ಮತ್ತು ಮರುಬಳಕೆ ಮಾಡುವುದು ಸುಲಭ.
- ಸರಳೀಕೃತ ಡಿಪೆಂಡೆನ್ಸಿ ಮ್ಯಾನೇಜ್ಮೆಂಟ್: ಪ್ರಾಜೆಕ್ಟ್ಗಳಾದ್ಯಂತ ಡಿಪೆಂಡೆನ್ಸಿಗಳನ್ನು ನಿರ್ವಹಿಸುವುದು ಹೆಚ್ಚು ಸರಳವಾಗುತ್ತದೆ.
- ಅಟಾಮಿಕ್ ಬದಲಾವಣೆಗಳು: ಬದಲಾವಣೆಗಳು ಬಹು ಪ್ರಾಜೆಕ್ಟ್ಗಳನ್ನು ವ್ಯಾಪಿಸಬಹುದು, ಸ್ಥಿರತೆಯನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ.
- ಸುಧಾರಿತ ಸಹಯೋಗ: ಸಂಬಂಧಿತ ಪ್ರಾಜೆಕ್ಟ್ಗಳಲ್ಲಿ ತಂಡಗಳು ಸಹಯೋಗಿಸಲು ಸುಲಭವಾಗುತ್ತದೆ.
ಫ್ರಂಟ್ಎಂಡ್ ಡೆವಲಪ್ಮೆಂಟ್ಗಾಗಿ ಮೊನೊರೆಪೊವನ್ನು ಏಕೆ ಬಳಸಬೇಕು?
ಮೊನೊರೆಪೊಗಳು ಫ್ರಂಟ್ಎಂಡ್ ಡೆವಲಪ್ಮೆಂಟ್ಗೆ ಗಮನಾರ್ಹ ಪ್ರಯೋಜನಗಳನ್ನು ನೀಡುತ್ತವೆ, ವಿಶೇಷವಾಗಿ ದೊಡ್ಡ ಮತ್ತು ಸಂಕೀರ್ಣ ಪ್ರಾಜೆಕ್ಟ್ಗಳಿಗೆ.
- ವರ್ಧಿತ ಕೋಡ್ ಶೇರಿಂಗ್: ಫ್ರಂಟ್ಎಂಡ್ ಪ್ರಾಜೆಕ್ಟ್ಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಸಾಮಾನ್ಯ UI ಕಾಂಪೊನೆಂಟ್ಗಳು, ಯುಟಿಲಿಟಿ ಫಂಕ್ಷನ್ಗಳು ಮತ್ತು ಡಿಸೈನ್ ಸಿಸ್ಟಮ್ಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತವೆ. ಮೊನೊರೆಪೊ ಕೋಡ್ ಶೇರಿಂಗ್ ಅನ್ನು ಸುಗಮಗೊಳಿಸುತ್ತದೆ, ನಕಲು ಮಾಡುವುದನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಸ್ಥಿರತೆಯನ್ನು ಉತ್ತೇಜಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಒಂದು ಡಿಸೈನ್ ಸಿಸ್ಟಮ್ ಲೈಬ್ರರಿಯನ್ನು ಒಂದೇ ವರ್ಕ್ಸ್ಪೇಸ್ನಲ್ಲಿರುವ ಬಹು ರಿಯಾಕ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ಗಳಾದ್ಯಂತ ಸುಲಭವಾಗಿ ಹಂಚಿಕೊಳ್ಳಬಹುದು.
- ಸುವ್ಯವಸ್ಥಿತ ಡಿಪೆಂಡೆನ್ಸಿ ಮ್ಯಾನೇಜ್ಮೆಂಟ್: ಬಹು ಫ್ರಂಟ್ಎಂಡ್ ಪ್ರಾಜೆಕ್ಟ್ಗಳಲ್ಲಿ ಡಿಪೆಂಡೆನ್ಸಿಗಳನ್ನು ನಿರ್ವಹಿಸುವುದು ಸವಾಲಿನದ್ದಾಗಿರಬಹುದು, ವಿಶೇಷವಾಗಿ ಸದಾ ವಿಕಸಿಸುತ್ತಿರುವ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಪರಿಸರ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ. ಮೊನೊರೆಪೊ ಡಿಪೆಂಡೆನ್ಸಿಗಳನ್ನು ಕೇಂದ್ರೀಕರಿಸುವ ಮೂಲಕ ಮತ್ತು ಆವೃತ್ತಿಗಳು ಹಾಗೂ ಅಪ್ಗ್ರೇಡ್ಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಟೂಲ್ಗಳನ್ನು ಒದಗಿಸುವ ಮೂಲಕ ಡಿಪೆಂಡೆನ್ಸಿ ಮ್ಯಾನೇಜ್ಮೆಂಟ್ ಅನ್ನು ಸರಳಗೊಳಿಸುತ್ತದೆ.
- ಸುಧಾರಿತ ಬಿಲ್ಡ್ ಪರ್ಫಾರ್ಮೆನ್ಸ್: Nx ಸುಧಾರಿತ ಬಿಲ್ಡ್ ಕ್ಯಾಶಿಂಗ್ ಮತ್ತು ಡಿಪೆಂಡೆನ್ಸಿ ವಿಶ್ಲೇಷಣೆಯನ್ನು ಒದಗಿಸುತ್ತದೆ, ಇದರಿಂದ ವೇಗವಾದ ಮತ್ತು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿ ಬಿಲ್ಡ್ಗಳು ಸಾಧ್ಯವಾಗುತ್ತವೆ. ಡಿಪೆಂಡೆನ್ಸಿ ಗ್ರಾಫ್ ಅನ್ನು ವಿಶ್ಲೇಷಿಸುವ ಮೂಲಕ, Nx ಬದಲಾವಣೆಯಿಂದ ಪ್ರಭಾವಿತವಾದ ಪ್ರಾಜೆಕ್ಟ್ಗಳನ್ನು ಮಾತ್ರ ಮರುನಿರ್ಮಿಸುತ್ತದೆ, ಇದು ಬಿಲ್ಡ್ ಸಮಯವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. ಅಸಂಖ್ಯಾತ ಕಾಂಪೊನೆಂಟ್ಗಳು ಮತ್ತು ಮಾಡ್ಯೂಲ್ಗಳನ್ನು ಹೊಂದಿರುವ ದೊಡ್ಡ ಫ್ರಂಟ್ಎಂಡ್ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಇದು ನಿರ್ಣಾಯಕವಾಗಿದೆ.
- ಸರಳೀಕೃತ ರಿಫ್ಯಾಕ್ಟರಿಂಗ್: ಮೊನೊರೆಪೊದಲ್ಲಿ ಬಹು ಪ್ರಾಜೆಕ್ಟ್ಗಳಾದ್ಯಂತ ಕೋಡ್ ಅನ್ನು ರಿಫ್ಯಾಕ್ಟರ್ ಮಾಡುವುದು ಸುಲಭ. ಬದಲಾವಣೆಗಳನ್ನು ಅಟಾಮಿಕ್ ಆಗಿ ಮಾಡಬಹುದು, ಇದು ಸ್ಥಿರತೆಯನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ ಮತ್ತು ಬಗ್ಗಳನ್ನು ಪರಿಚಯಿಸುವ ಅಪಾಯವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಬಹು ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ಬಳಸಲಾಗುವ ಕಾಂಪೊನೆಂಟ್ನ ಹೆಸರನ್ನು ಒಂದೇ ಕಮಿಟ್ನಲ್ಲಿ ಬದಲಾಯಿಸಬಹುದು.
- ಉತ್ತಮ ಸಹಯೋಗ: ಮೊನೊರೆಪೊ ಹಂಚಿಕೆಯ ಕೋಡ್ಬೇಸ್ ಮತ್ತು ಸಾಮಾನ್ಯ ಡೆವಲಪ್ಮೆಂಟ್ ಪರಿಸರವನ್ನು ಒದಗಿಸುವ ಮೂಲಕ ಫ್ರಂಟ್ಎಂಡ್ ಡೆವಲಪರ್ಗಳ ನಡುವೆ ಉತ್ತಮ ಸಹಯೋಗವನ್ನು ಉತ್ತೇಜಿಸುತ್ತದೆ. ತಂಡಗಳು ವಿವಿಧ ಪ್ರಾಜೆಕ್ಟ್ಗಳಿಗೆ ಸುಲಭವಾಗಿ ಕೊಡುಗೆ ನೀಡಬಹುದು ಮತ್ತು ಜ್ಞಾನ ಹಾಗೂ ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಹಂಚಿಕೊಳ್ಳಬಹುದು.
Nx ಪರಿಚಯ: ಸ್ಮಾರ್ಟ್, ವಿಸ್ತರಿಸಬಲ್ಲ ಬಿಲ್ಡ್ ಸಿಸ್ಟಮ್
Nx ಒಂದು ಶಕ್ತಿಯುತ ಬಿಲ್ಡ್ ಸಿಸ್ಟಮ್ ಆಗಿದ್ದು, ಇದು ಸುಧಾರಿತ ಟೂಲಿಂಗ್ ಮತ್ತು ಫೀಚರ್ಗಳೊಂದಿಗೆ ಮೊನೊರೆಪೊ ಡೆವಲಪ್ಮೆಂಟ್ ಅನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ. ಇದು ಒಂದು ಪ್ರಮಾಣಿತ ಡೆವಲಪ್ಮೆಂಟ್ ಅನುಭವವನ್ನು ಒದಗಿಸುತ್ತದೆ, ಬಿಲ್ಡ್ ಪರ್ಫಾರ್ಮೆನ್ಸ್ ಅನ್ನು ಸುಧಾರಿಸುತ್ತದೆ ಮತ್ತು ಡಿಪೆಂಡೆನ್ಸಿ ಮ್ಯಾನೇಜ್ಮೆಂಟ್ ಅನ್ನು ಸರಳಗೊಳಿಸುತ್ತದೆ.
Nx ನ ಪ್ರಮುಖ ಫೀಚರ್ಗಳು:
- ಸ್ಮಾರ್ಟ್ ಬಿಲ್ಡ್ ಸಿಸ್ಟಮ್: Nx ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್ಗಳ ಡಿಪೆಂಡೆನ್ಸಿ ಗ್ರಾಫ್ ಅನ್ನು ವಿಶ್ಲೇಷಿಸುತ್ತದೆ ಮತ್ತು ಪ್ರಭಾವಿತವಾದ ಪ್ರಾಜೆಕ್ಟ್ಗಳನ್ನು ಮಾತ್ರ ಮರುನಿರ್ಮಿಸುತ್ತದೆ, ಇದರಿಂದ ಬಿಲ್ಡ್ ಸಮಯವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.
- ಕೋಡ್ ಜೆನರೇಷನ್: Nx ಹೊಸ ಪ್ರಾಜೆಕ್ಟ್ಗಳು, ಕಾಂಪೊನೆಂಟ್ಗಳು ಮತ್ತು ಮಾಡ್ಯೂಲ್ಗಳನ್ನು ರಚಿಸಲು ಕೋಡ್ ಜೆನರೇಷನ್ ಟೂಲ್ಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ, ಇದು ಡೆವಲಪ್ಮೆಂಟ್ ಅನ್ನು ವೇಗಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಸ್ಥಿರತೆಯನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ.
- ಇಂಟಿಗ್ರೇಟೆಡ್ ಟೂಲಿಂಗ್: Nx ರಿಯಾಕ್ಟ್, ಆಂಗ್ಯುಲರ್, ಮತ್ತು ವ್ಯೂ.ಜೆಎಸ್ ನಂತಹ ಜನಪ್ರಿಯ ಫ್ರಂಟ್ಎಂಡ್ ಫ್ರೇಮ್ವರ್ಕ್ಗಳೊಂದಿಗೆ ಸಂಯೋಜನೆಗೊಳ್ಳುತ್ತದೆ, ಇದು ಒಂದು ತಡೆರಹಿತ ಡೆವಲಪ್ಮೆಂಟ್ ಅನುಭವವನ್ನು ನೀಡುತ್ತದೆ.
- ಪ್ಲಗಿನ್ ಪರಿಸರ ವ್ಯವಸ್ಥೆ: Nx ಶ್ರೀಮಂತ ಪ್ಲಗಿನ್ ಪರಿಸರ ವ್ಯವಸ್ಥೆಯನ್ನು ಹೊಂದಿದೆ, ಇದು ಹೆಚ್ಚುವರಿ ಟೂಲ್ಗಳು ಮತ್ತು ಇಂಟಿಗ್ರೇಷನ್ಗಳೊಂದಿಗೆ ಅದರ ಕಾರ್ಯವನ್ನು ವಿಸ್ತರಿಸುತ್ತದೆ.
- ಇಂಕ್ರಿಮೆಂಟಲ್ ಬಿಲ್ಡ್ಸ್: Nx ನ ಇಂಕ್ರಿಮೆಂಟಲ್ ಬಿಲ್ಡ್ ಸಿಸ್ಟಮ್ ಬದಲಾದದ್ದನ್ನು ಮಾತ್ರ ಮರುನಿರ್ಮಿಸುತ್ತದೆ, ಇದು ಡೆವಲಪ್ಮೆಂಟ್ ಫೀಡ್ಬ್ಯಾಕ್ ಲೂಪ್ ಅನ್ನು ತೀವ್ರವಾಗಿ ವೇಗಗೊಳಿಸುತ್ತದೆ.
- ಕಂಪ್ಯೂಟೇಶನ್ ಕ್ಯಾಶಿಂಗ್: Nx ಬಿಲ್ಡ್ಗಳು ಮತ್ತು ಟೆಸ್ಟ್ಗಳಂತಹ ದುಬಾರಿ ಕಂಪ್ಯೂಟೇಶನ್ಗಳ ಫಲಿತಾಂಶಗಳನ್ನು ಕ್ಯಾಶ್ ಮಾಡುತ್ತದೆ, ಇದು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಮತ್ತಷ್ಟು ಸುಧಾರಿಸುತ್ತದೆ.
- ವಿತರಿತ ಕಾರ್ಯ ನಿರ್ವಹಣೆ (Distributed Task Execution): ಅತಿ ದೊಡ್ಡ ಮೊನೊರೆಪೊಗಳಿಗಾಗಿ, Nx ಬಿಲ್ಡ್ಗಳು ಮತ್ತು ಟೆಸ್ಟ್ಗಳನ್ನು ಸಮಾನಾಂತರಗೊಳಿಸಲು ಬಹು ಮೆಷಿನ್ಗಳಾದ್ಯಂತ ಕಾರ್ಯಗಳನ್ನು ವಿತರಿಸಬಲ್ಲದು.
ಫ್ರಂಟ್ಎಂಡ್ ಡೆವಲಪ್ಮೆಂಟ್ಗಾಗಿ Nx ವರ್ಕ್ಸ್ಪೇಸ್ ಅನ್ನು ಸ್ಥಾಪಿಸುವುದು
Nx ವರ್ಕ್ಸ್ಪೇಸ್ ಅನ್ನು ಸ್ಥಾಪಿಸುವುದು ಸರಳವಾಗಿದೆ. ನೀವು Nx CLI ಬಳಸಿ ಹೊಸ ವರ್ಕ್ಸ್ಪೇಸ್ ಅನ್ನು ರಚಿಸಬಹುದು ಮತ್ತು ಪ್ರಾಜೆಕ್ಟ್ಗಳು ಹಾಗೂ ಲೈಬ್ರರಿಗಳನ್ನು ಸೇರಿಸಬಹುದು.
ಪೂರ್ವಾಪೇಕ್ಷಿತಗಳು:
- Node.js (ಆವೃತ್ತಿ 16 ಅಥವಾ ನಂತರದ್ದು)
- npm ಅಥವಾ yarn
ಹಂತಗಳು:
- Nx CLI ಅನ್ನು ಇನ್ಸ್ಟಾಲ್ ಮಾಡಿ:
npm install -g create-nx-workspace
- ಹೊಸ Nx ವರ್ಕ್ಸ್ಪೇಸ್ ರಚಿಸಿ:
npx create-nx-workspace my-frontend-workspace
ನಿಮಗೆ ಪ್ರಿಸೆಟ್ ಆಯ್ಕೆ ಮಾಡಲು ಕೇಳಲಾಗುತ್ತದೆ. ನಿಮ್ಮ ಆದ್ಯತೆಯ ಫ್ರಂಟ್ಎಂಡ್ ಫ್ರೇಮ್ವರ್ಕ್ಗೆ (ಉದಾ., ರಿಯಾಕ್ಟ್, ಆಂಗ್ಯುಲರ್, ವ್ಯೂ.ಜೆಎಸ್) ಹೊಂದುವ ಪ್ರಿಸೆಟ್ ಆಯ್ಕೆ ಮಾಡಿ.
- ಹೊಸ ಅಪ್ಲಿಕೇಶನ್ ಸೇರಿಸಿ:
nx generate @nx/react:application my-app
ಈ ಕಮಾಂಡ್ ವರ್ಕ್ಸ್ಪೇಸ್ನಲ್ಲಿ "my-app" ಹೆಸರಿನ ಹೊಸ ರಿಯಾಕ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ.
- ಹೊಸ ಲೈಬ್ರರಿ ಸೇರಿಸಿ:
nx generate @nx/react:library my-library
ಈ ಕಮಾಂಡ್ ವರ್ಕ್ಸ್ಪೇಸ್ನಲ್ಲಿ "my-library" ಹೆಸರಿನ ಹೊಸ ರಿಯಾಕ್ಟ್ ಲೈಬ್ರರಿಯನ್ನು ರಚಿಸುತ್ತದೆ. ಅಪ್ಲಿಕೇಶನ್ಗಳಾದ್ಯಂತ ಕೋಡ್ ಹಂಚಿಕೊಳ್ಳಲು ಲೈಬ್ರರಿಗಳನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.
ನಿಮ್ಮ Nx ವರ್ಕ್ಸ್ಪೇಸ್ ಅನ್ನು ಸಂಘಟಿಸುವುದು
ಒಂದು ಸುಸಂಘಟಿತ Nx ವರ್ಕ್ಸ್ಪೇಸ್ ನಿರ್ವಹಣೆ ಮತ್ತು ಸ್ಕೇಲೆಬಿಲಿಟಿಗೆ ನಿರ್ಣಾಯಕವಾಗಿದೆ. ನಿಮ್ಮ ವರ್ಕ್ಸ್ಪೇಸ್ ರಚಿಸುವಾಗ ಈ ಕೆಳಗಿನ ಮಾರ್ಗಸೂಚಿಗಳನ್ನು ಪರಿಗಣಿಸಿ:
- ಅಪ್ಲಿಕೇಶನ್ಗಳು: ಅಪ್ಲಿಕೇಶನ್ಗಳು ನಿಮ್ಮ ಫ್ರಂಟ್ಎಂಡ್ ಪ್ರಾಜೆಕ್ಟ್ಗಳ ಪ್ರವೇಶ ಬಿಂದುಗಳಾಗಿವೆ. ಅವು ಬಳಕೆದಾರ-ಮುಖಿ ಇಂಟರ್ಫೇಸ್ಗಳನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತವೆ. ಉದಾಹರಣೆಗಳಲ್ಲಿ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್, ಮೊಬೈಲ್ ಅಪ್ಲಿಕೇಶನ್, ಅಥವಾ ಡೆಸ್ಕ್ಟಾಪ್ ಅಪ್ಲಿಕೇಶನ್ ಸೇರಿವೆ.
- ಲೈಬ್ರರಿಗಳು: ಲೈಬ್ರರಿಗಳು ಬಹು ಅಪ್ಲಿಕೇಶನ್ಗಳಾದ್ಯಂತ ಹಂಚಿಕೊಳ್ಳಬಹುದಾದ ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ ಕೋಡ್ ಅನ್ನು ಹೊಂದಿರುತ್ತವೆ. ಅವುಗಳ ಕಾರ್ಯನಿರ್ವಹಣೆಯ ಆಧಾರದ ಮೇಲೆ ಅವುಗಳನ್ನು ವಿವಿಧ ಪ್ರಕಾರಗಳಾಗಿ ಸಂಘಟಿಸಲಾಗುತ್ತದೆ.
- ಫೀಚರ್ ಲೈಬ್ರರಿಗಳು: ಫೀಚರ್ ಲೈಬ್ರರಿಗಳು ನಿರ್ದಿಷ್ಟ ಫೀಚರ್ಗಾಗಿ ಬಿಸಿನೆಸ್ ಲಾಜಿಕ್ ಮತ್ತು UI ಕಾಂಪೊನೆಂಟ್ಗಳನ್ನು ಹೊಂದಿರುತ್ತವೆ. ಅವು ಕೋರ್ ಮತ್ತು UI ಲೈಬ್ರರಿಗಳ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿವೆ.
- UI ಲೈಬ್ರರಿಗಳು: UI ಲೈಬ್ರರಿಗಳು ಬಹು ಫೀಚರ್ಗಳು ಮತ್ತು ಅಪ್ಲಿಕೇಶನ್ಗಳಾದ್ಯಂತ ಬಳಸಬಹುದಾದ ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ UI ಕಾಂಪೊನೆಂಟ್ಗಳನ್ನು ಹೊಂದಿರುತ್ತವೆ.
- ಕೋರ್ ಲೈಬ್ರರಿಗಳು: ಕೋರ್ ಲೈಬ್ರರಿಗಳು ಯುಟಿಲಿಟಿ ಫಂಕ್ಷನ್ಗಳು, ಡೇಟಾ ಮಾದರಿಗಳು, ಮತ್ತು ವರ್ಕ್ಸ್ಪೇಸ್ನಾದ್ಯಂತ ಬಳಸಲಾಗುವ ಇತರ ಸಾಮಾನ್ಯ ಕೋಡ್ ಅನ್ನು ಹೊಂದಿರುತ್ತವೆ.
- ಶೇರ್ಡ್ ಲೈಬ್ರರಿಗಳು: ಶೇರ್ಡ್ ಲೈಬ್ರರಿಗಳು ಫ್ರೇಮ್ವರ್ಕ್-ಅಗ್ನಾಸ್ಟಿಕ್ ಕೋಡ್ ಅನ್ನು ಹೊಂದಿರುತ್ತವೆ, ಇದನ್ನು ಫ್ರಂಟ್ಎಂಡ್ ಫ್ರೇಮ್ವರ್ಕ್ (ರಿಯಾಕ್ಟ್, ಆಂಗ್ಯುಲರ್, ವ್ಯೂ.ಜೆಎಸ್) ಅನ್ನು ಲೆಕ್ಕಿಸದೆ ಬಹು ಅಪ್ಲಿಕೇಶನ್ಗಳು ಮತ್ತು ಲೈಬ್ರರಿಗಳು ಬಳಸಬಹುದು. ಇದು ಕೋಡ್ ಮರುಬಳಕೆಯನ್ನು ಉತ್ತೇಜಿಸುತ್ತದೆ ಮತ್ತು ನಕಲು ಮಾಡುವುದನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.
ಉದಾಹರಣೆ ಡೈರೆಕ್ಟರಿ ರಚನೆ:
my-frontend-workspace/ ├── apps/ │ ├── my-app/ │ │ ├── src/ │ │ │ ├── app/ │ │ │ │ ├── app.tsx │ │ │ │ └── app.module.css │ │ │ └── main.tsx │ │ └── project.json │ └── my-other-app/ │ └── ... ├── libs/ │ ├── feature-my-feature/ │ │ ├── src/ │ │ │ └── lib/ │ │ │ └── feature-my-feature.tsx │ │ └── project.json │ ├── ui/ │ │ ├── src/ │ │ │ └── lib/ │ │ │ └── button/ │ │ │ └── button.tsx │ │ └── project.json │ ├── core/ │ │ ├── src/ │ │ │ └── lib/ │ │ │ └── api.ts │ │ └── project.json │ └── shared/ │ ├── src/ │ │ └── lib/ │ │ └── date-formatter.ts │ └── project.json ├── tools/ │ └── generators/ ├── nx.json ├── package.json └── tsconfig.base.json
Nx ಲೈಬ್ರರಿಗಳೊಂದಿಗೆ ಕೋಡ್ ಶೇರಿಂಗ್ ಮತ್ತು ಮರುಬಳಕೆ
Nx ಲೈಬ್ರರಿಗಳು ಮೊನೊರೆಪೊದಲ್ಲಿ ಕೋಡ್ ಶೇರಿಂಗ್ ಮತ್ತು ಮರುಬಳಕೆಗೆ ಪ್ರಮುಖವಾಗಿವೆ. ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಸು-ವ್ಯಾಖ್ಯಾನಿತ ಲೈಬ್ರರಿಗಳಾಗಿ ಸಂಘಟಿಸುವ ಮೂಲಕ, ನೀವು ಬಹು ಅಪ್ಲಿಕೇಶನ್ಗಳಾದ್ಯಂತ ಕಾಂಪೊನೆಂಟ್ಗಳು, ಸೇವೆಗಳು ಮತ್ತು ಯುಟಿಲಿಟಿಗಳನ್ನು ಸುಲಭವಾಗಿ ಹಂಚಿಕೊಳ್ಳಬಹುದು.
ಉದಾಹರಣೆ: UI ಕಾಂಪೊನೆಂಟ್ ಅನ್ನು ಹಂಚಿಕೊಳ್ಳುವುದು
ನೀವು ಬಹು ರಿಯಾಕ್ಟ್ ಅಪ್ಲಿಕೇಶನ್ಗಳಾದ್ಯಂತ ಹಂಚಿಕೊಳ್ಳಲು ಬಯಸುವ ಬಟನ್ ಕಾಂಪೊನೆಂಟ್ ಇದೆ ಎಂದು ಭಾವಿಸೋಣ. ನೀವು "ui" ಹೆಸರಿನ UI ಲೈಬ್ರರಿಯನ್ನು ರಚಿಸಬಹುದು ಮತ್ತು ಈ ಲೈಬ್ರರಿಯಲ್ಲಿ ಬಟನ್ ಕಾಂಪೊನೆಂಟ್ ಅನ್ನು ಇರಿಸಬಹುದು.
- UI ಲೈಬ್ರರಿ ರಚಿಸಿ:
nx generate @nx/react:library ui
- ಬಟನ್ ಕಾಂಪೊನೆಂಟ್ ರಚಿಸಿ:
nx generate @nx/react:component button --project=ui
- ಬಟನ್ ಕಾಂಪೊನೆಂಟ್ ಅನ್ನು ಇಂಪ್ಲಿಮೆಂಟ್ ಮಾಡಿ:
// libs/ui/src/lib/button/button.tsx import styles from './button.module.css'; interface ButtonProps { text: string; onClick: () => void; } export function Button({ text, onClick }: ButtonProps) { return ( ); } export default Button;
- ಲೈಬ್ರರಿಯಿಂದ ಬಟನ್ ಕಾಂಪೊನೆಂಟ್ ಅನ್ನು ಎಕ್ಸ್ಪೋರ್ಟ್ ಮಾಡಿ:
// libs/ui/src/index.ts export * from './lib/button/button';
- ಅಪ್ಲಿಕೇಶನ್ನಲ್ಲಿ ಬಟನ್ ಕಾಂಪೊನೆಂಟ್ ಅನ್ನು ಬಳಸಿ:
// apps/my-app/src/app/app.tsx import { Button } from '@my-frontend-workspace/ui'; function App() { return (
Welcome to My App
ಲೈಬ್ರರಿಗಳನ್ನು ಬಳಸುವ ಮೂಲಕ, ನಿಮ್ಮ UI ಕಾಂಪೊನೆಂಟ್ಗಳು ಎಲ್ಲಾ ಅಪ್ಲಿಕೇಶನ್ಗಳಾದ್ಯಂತ ಸ್ಥಿರವಾಗಿರುವುದನ್ನು ನೀವು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಬಹುದು. ನೀವು UI ಲೈಬ್ರರಿಯಲ್ಲಿ ಬಟನ್ ಕಾಂಪೊನೆಂಟ್ ಅನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಿದಾಗ, ಆ ಕಾಂಪೊನೆಂಟ್ ಬಳಸುವ ಎಲ್ಲಾ ಅಪ್ಲಿಕೇಶನ್ಗಳು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಅಪ್ಡೇಟ್ ಆಗುತ್ತವೆ.
Nx ವರ್ಕ್ಸ್ಪೇಸ್ಗಳಲ್ಲಿ ಡಿಪೆಂಡೆನ್ಸಿ ಮ್ಯಾನೇಜ್ಮೆಂಟ್
Nx ಪ್ರಾಜೆಕ್ಟ್ಗಳು ಮತ್ತು ಲೈಬ್ರರಿಗಳ ನಡುವಿನ ಡಿಪೆಂಡೆನ್ಸಿಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಶಕ್ತಿಯುತ ಟೂಲ್ಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. ನೀವು ಪ್ರತಿ ಪ್ರಾಜೆಕ್ಟ್ ಅಥವಾ ಲೈಬ್ರರಿಯ `project.json` ಫೈಲ್ನಲ್ಲಿ ಡಿಪೆಂಡೆನ್ಸಿಗಳನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ವ್ಯಾಖ್ಯಾನಿಸಬಹುದು.
ಉದಾಹರಣೆ: ಡಿಪೆಂಡೆನ್ಸಿಯನ್ನು ಘೋಷಿಸುವುದು
ನಿಮ್ಮ "my-app" ಅಪ್ಲಿಕೇಶನ್ "core" ಲೈಬ್ರರಿಯ ಮೇಲೆ ಅವಲಂಬಿತವಾಗಿದೆ ಎಂದು ಭಾವಿಸೋಣ. ನೀವು ಈ ಡಿಪೆಂಡೆನ್ಸಿಯನ್ನು "my-app" ನ `project.json` ಫೈಲ್ನಲ್ಲಿ ಘೋಷಿಸಬಹುದು.
// apps/my-app/project.json
{
"name": "my-app",
"projectType": "application",
...
"implicitDependencies": ["core"]
}
ಡಿಪೆಂಡೆನ್ಸಿಗಳನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಘೋಷಿಸುವ ಮೂಲಕ, Nx ನಿಮ್ಮ ವರ್ಕ್ಸ್ಪೇಸ್ನ ಡಿಪೆಂಡೆನ್ಸಿ ಗ್ರಾಫ್ ಅನ್ನು ವಿಶ್ಲೇಷಿಸಬಹುದು ಮತ್ತು ಡಿಪೆಂಡೆನ್ಸಿ ಬದಲಾದಾಗ ಪ್ರಭಾವಿತವಾದ ಪ್ರಾಜೆಕ್ಟ್ಗಳನ್ನು ಮಾತ್ರ ಮರುನಿರ್ಮಿಸಬಹುದು. ಇದು ಬಿಲ್ಡ್ ಪರ್ಫಾರ್ಮೆನ್ಸ್ ಅನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸುಧಾರಿಸುತ್ತದೆ.
Nx ನೊಂದಿಗೆ ಬಿಲ್ಡ್ ಪರ್ಫಾರ್ಮೆನ್ಸ್ ಆಪ್ಟಿಮೈಸೇಶನ್
Nx ನ ಸ್ಮಾರ್ಟ್ ಬಿಲ್ಡ್ ಸಿಸ್ಟಮ್ ಮತ್ತು ಕಂಪ್ಯೂಟೇಶನ್ ಕ್ಯಾಶಿಂಗ್ ಸಾಮರ್ಥ್ಯಗಳು ಬಿಲ್ಡ್ ಪರ್ಫಾರ್ಮೆನ್ಸ್ ಅನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಸುಧಾರಿಸುತ್ತವೆ. ನಿಮ್ಮ Nx ವರ್ಕ್ಸ್ಪೇಸ್ನಲ್ಲಿ ಬಿಲ್ಡ್ ಪರ್ಫಾರ್ಮೆನ್ಸ್ ಅನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡಲು ಕೆಲವು ಸಲಹೆಗಳು ಇಲ್ಲಿವೆ:
- ಡಿಪೆಂಡೆನ್ಸಿ ಗ್ರಾಫ್ ಅನ್ನು ವಿಶ್ಲೇಷಿಸಿ: ನಿಮ್ಮ ವರ್ಕ್ಸ್ಪೇಸ್ನ ಡಿಪೆಂಡೆನ್ಸಿ ಗ್ರಾಫ್ ಅನ್ನು ದೃಶ್ಯೀಕರಿಸಲು `nx graph` ಕಮಾಂಡ್ ಬಳಸಿ. ಸಂಭಾವ್ಯ ಅಡಚಣೆಗಳನ್ನು ಗುರುತಿಸಿ ಮತ್ತು ಡಿಪೆಂಡೆನ್ಸಿಗಳನ್ನು ಕಡಿಮೆ ಮಾಡಲು ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್ ರಚನೆಯನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡಿ.
- ಕಂಪ್ಯೂಟೇಶನ್ ಕ್ಯಾಶಿಂಗ್ ಬಳಸಿ: Nx ಬಿಲ್ಡ್ಗಳು ಮತ್ತು ಟೆಸ್ಟ್ಗಳಂತಹ ದುಬಾರಿ ಕಂಪ್ಯೂಟೇಶನ್ಗಳ ಫಲಿತಾಂಶಗಳನ್ನು ಕ್ಯಾಶ್ ಮಾಡುತ್ತದೆ. ನಿಮ್ಮ `nx.json` ಫೈಲ್ನಲ್ಲಿ ಕಂಪ್ಯೂಟೇಶನ್ ಕ್ಯಾಶಿಂಗ್ ಅನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.
- ಕಾರ್ಯಗಳನ್ನು ಸಮಾನಾಂತರವಾಗಿ ರನ್ ಮಾಡಿ: Nx ಬಹು CPU ಕೋರ್ಗಳನ್ನು ಬಳಸಿಕೊಳ್ಳಲು ಕಾರ್ಯಗಳನ್ನು ಸಮಾನಾಂತರವಾಗಿ ರನ್ ಮಾಡಬಹುದು. ಕಾರ್ಯಗಳನ್ನು ಸಮಾನಾಂತರವಾಗಿ ರನ್ ಮಾಡಲು `--parallel` ಫ್ಲ್ಯಾಗ್ ಬಳಸಿ.
- ವಿತರಿತ ಕಾರ್ಯ ನಿರ್ವಹಣೆ ಬಳಸಿ: ಅತಿ ದೊಡ್ಡ ಮೊನೊರೆಪೊಗಳಿಗಾಗಿ, Nx ಬಿಲ್ಡ್ಗಳು ಮತ್ತು ಟೆಸ್ಟ್ಗಳನ್ನು ಸಮಾನಾಂತರಗೊಳಿಸಲು ಬಹು ಮೆಷಿನ್ಗಳಾದ್ಯಂತ ಕಾರ್ಯಗಳನ್ನು ವಿತರಿಸಬಲ್ಲದು.
- ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡಿ: ಬಿಲ್ಡ್ ಸಮಯವನ್ನು ಕಡಿಮೆ ಮಾಡಲು ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡಿ. ಬಳಕೆಯಾಗದ ಕೋಡ್ ಅನ್ನು ತೆಗೆದುಹಾಕಿ, ಚಿತ್ರಗಳನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡಿ, ಮತ್ತು ನಿಮ್ಮ ಬಂಡಲ್ಗಳ ಗಾತ್ರವನ್ನು ಕಡಿಮೆ ಮಾಡಲು ಕೋಡ್ ಸ್ಪ್ಲಿಟಿಂಗ್ ಬಳಸಿ.
Nx ವರ್ಕ್ಸ್ಪೇಸ್ಗಳಲ್ಲಿ ಟೆಸ್ಟಿಂಗ್
Nx ಯುನಿಟ್ ಟೆಸ್ಟ್ಗಳು, ಇಂಟಿಗ್ರೇಷನ್ ಟೆಸ್ಟ್ಗಳು, ಮತ್ತು ಎಂಡ್-ಟು-ಎಂಡ್ ಟೆಸ್ಟ್ಗಳನ್ನು ನಡೆಸಲು ಇಂಟಿಗ್ರೇಟೆಡ್ ಟೆಸ್ಟಿಂಗ್ ಟೂಲ್ಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. ವರ್ಕ್ಸ್ಪೇಸ್ನಲ್ಲಿರುವ ಎಲ್ಲಾ ಪ್ರಾಜೆಕ್ಟ್ಗಳಿಗೆ ಅಥವಾ ನಿರ್ದಿಷ್ಟ ಪ್ರಾಜೆಕ್ಟ್ಗೆ ಟೆಸ್ಟ್ಗಳನ್ನು ನಡೆಸಲು ನೀವು `nx test` ಕಮಾಂಡ್ ಅನ್ನು ಬಳಸಬಹುದು.
ಉದಾಹರಣೆ: ಟೆಸ್ಟ್ಗಳನ್ನು ನಡೆಸುವುದು
nx test my-app
ಈ ಕಮಾಂಡ್ "my-app" ಅಪ್ಲಿಕೇಶನ್ಗಾಗಿ ಎಲ್ಲಾ ಟೆಸ್ಟ್ಗಳನ್ನು ನಡೆಸುತ್ತದೆ.
Nx Jest, Cypress, ಮತ್ತು Playwright ನಂತಹ ಜನಪ್ರಿಯ ಟೆಸ್ಟಿಂಗ್ ಫ್ರೇಮ್ವರ್ಕ್ಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ. ನೀವು ಪ್ರತಿ ಪ್ರಾಜೆಕ್ಟ್ನ `project.json` ಫೈಲ್ನಲ್ಲಿ ನಿಮ್ಮ ಟೆಸ್ಟಿಂಗ್ ಪರಿಸರವನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಬಹುದು.
Nx ನೊಂದಿಗೆ ನಿರಂತರ ಸಂಯೋಜನೆ ಮತ್ತು ನಿರಂತರ ನಿಯೋಜನೆ (CI/CD)
Nx GitHub Actions, GitLab CI, ಮತ್ತು Jenkins ನಂತಹ ಜನಪ್ರಿಯ CI/CD ಸಿಸ್ಟಮ್ಗಳೊಂದಿಗೆ ತಡೆರಹಿತವಾಗಿ ಸಂಯೋಜನೆಗೊಳ್ಳುತ್ತದೆ. ನಿಮ್ಮ CI/CD ಪೈಪ್ಲೈನ್ನಲ್ಲಿ ಬಿಲ್ಡ್ಗಳು, ಟೆಸ್ಟ್ಗಳು ಮತ್ತು ನಿಯೋಜನೆಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸಲು ನೀವು Nx ನ ಕಮಾಂಡ್-ಲೈನ್ ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಬಳಸಬಹುದು.
ಉದಾಹರಣೆ: GitHub Actions ವರ್ಕ್ಫ್ಲೋ
ನಿಮ್ಮ Nx ವರ್ಕ್ಸ್ಪೇಸ್ ಅನ್ನು ನಿರ್ಮಿಸುವ, ಪರೀಕ್ಷಿಸುವ ಮತ್ತು ನಿಯೋಜಿಸುವ GitHub Actions ವರ್ಕ್ಫ್ಲೋನ ಉದಾಹರಣೆ ಇಲ್ಲಿದೆ:
# .github/workflows/ci.yml
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-node@v3
with:
node-version: 16
cache: 'npm'
- run: npm ci
- run: npx nx affected --target=lint --base=origin/main --head=HEAD
- run: npx nx affected --target=test --base=origin/main --head=HEAD --watchAll=false
- run: npx nx affected --target=build --base=origin/main --head=HEAD
ಈ ವರ್ಕ್ಫ್ಲೋ ಈ ಕೆಳಗಿನ ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ:
- ಲಿಂಟಿಂಗ್: ಪ್ರಭಾವಿತ ಪ್ರಾಜೆಕ್ಟ್ಗಳಲ್ಲಿ ಲಿಂಟರ್ಗಳನ್ನು ರನ್ ಮಾಡುತ್ತದೆ.
- ಟೆಸ್ಟಿಂಗ್: ಪ್ರಭಾವಿತ ಪ್ರಾಜೆಕ್ಟ್ಗಳಲ್ಲಿ ಟೆಸ್ಟ್ಗಳನ್ನು ರನ್ ಮಾಡುತ್ತದೆ.
- ಬಿಲ್ಡಿಂಗ್: ಪ್ರಭಾವಿತ ಪ್ರಾಜೆಕ್ಟ್ಗಳನ್ನು ನಿರ್ಮಿಸುತ್ತದೆ.
Nx `affected` ಕಮಾಂಡ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ, ಇದು ಬದಲಾವಣೆಯಿಂದ ಪ್ರಭಾವಿತವಾದ ಪ್ರಾಜೆಕ್ಟ್ಗಳಲ್ಲಿ ಮಾತ್ರ ಕಾರ್ಯಗಳನ್ನು ನಡೆಸಲು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಇದು ನಿಮ್ಮ CI/CD ಪೈಪ್ಲೈನ್ನ ಕಾರ್ಯಗತ ಸಮಯವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.
ಫ್ರಂಟ್ಎಂಡ್ Nx ವರ್ಕ್ಸ್ಪೇಸ್ ಡೆವಲಪ್ಮೆಂಟ್ಗಾಗಿ ಉತ್ತಮ ಅಭ್ಯಾಸಗಳು
Nx ನೊಂದಿಗೆ ಫ್ರಂಟ್ಎಂಡ್ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಲು ಕೆಲವು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳು ಇಲ್ಲಿವೆ:
- ಸ್ಥಿರವಾದ ಕೋಡಿಂಗ್ ಶೈಲಿಯನ್ನು ಅನುಸರಿಸಿ: ನಿಮ್ಮ ವರ್ಕ್ಸ್ಪೇಸ್ನಾದ್ಯಂತ ಸ್ಥಿರವಾದ ಕೋಡಿಂಗ್ ಶೈಲಿಯನ್ನು ಜಾರಿಗೊಳಿಸಲು Prettier ನಂತಹ ಕೋಡ್ ಫಾರ್ಮ್ಯಾಟರ್ ಮತ್ತು ESLint ನಂತಹ ಲಿಂಟರ್ ಬಳಸಿ.
- ಯುನಿಟ್ ಟೆಸ್ಟ್ಗಳನ್ನು ಬರೆಯಿರಿ: ಕೋಡ್ ಗುಣಮಟ್ಟವನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಮತ್ತು ಹಿನ್ನಡೆಗಳನ್ನು ತಡೆಯಲು ನಿಮ್ಮ ಎಲ್ಲಾ ಕಾಂಪೊನೆಂಟ್ಗಳು, ಸೇವೆಗಳು ಮತ್ತು ಯುಟಿಲಿಟಿಗಳಿಗೆ ಯುನಿಟ್ ಟೆಸ್ಟ್ಗಳನ್ನು ಬರೆಯಿರಿ.
- ಡಿಸೈನ್ ಸಿಸ್ಟಮ್ ಬಳಸಿ: ನಿಮ್ಮ UI ಕಾಂಪೊನೆಂಟ್ಗಳಾದ್ಯಂತ ಸ್ಥಿರತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಡಿಸೈನ್ ಸಿಸ್ಟಮ್ ಬಳಸಿ.
- ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಡಾಕ್ಯುಮೆಂಟ್ ಮಾಡಿ: ಇತರ ಡೆವಲಪರ್ಗಳಿಗೆ ಅರ್ಥಮಾಡಿಕೊಳ್ಳಲು ಮತ್ತು ನಿರ್ವಹಿಸಲು ಸುಲಭವಾಗುವಂತೆ ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಡಾಕ್ಯುಮೆಂಟ್ ಮಾಡಿ.
- ವರ್ಷನ್ ಕಂಟ್ರೋಲ್ ಬಳಸಿ: ವರ್ಷನ್ ಕಂಟ್ರೋಲ್ಗಾಗಿ Git ಬಳಸಿ ಮತ್ತು ಸ್ಥಿರವಾದ ಬ್ರಾಂಚಿಂಗ್ ತಂತ್ರವನ್ನು ಅನುಸರಿಸಿ.
- ನಿಮ್ಮ ವರ್ಕ್ಫ್ಲೋ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸಿ: ನಿಮ್ಮ ಕೋಡ್ ಯಾವಾಗಲೂ ಪರೀಕ್ಷಿಸಲ್ಪಟ್ಟಿದೆ ಮತ್ತು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನಿಯೋಜಿಸಲ್ಪಟ್ಟಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು CI/CD ಯೊಂದಿಗೆ ನಿಮ್ಮ ವರ್ಕ್ಫ್ಲೋ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸಿ.
- ಡಿಪೆಂಡೆನ್ಸಿಗಳನ್ನು ಅಪ್-ಟು-ಡೇಟ್ ಆಗಿಡಿ: ಇತ್ತೀಚಿನ ಫೀಚರ್ಗಳು ಮತ್ತು ಭದ್ರತಾ ಪ್ಯಾಚ್ಗಳಿಂದ ಪ್ರಯೋಜನ ಪಡೆಯಲು ನಿಮ್ಮ ಡಿಪೆಂಡೆನ್ಸಿಗಳನ್ನು ನಿಯಮಿತವಾಗಿ ಅಪ್ಡೇಟ್ ಮಾಡಿ.
- ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಿ: ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ಗಳ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಮೇಲ್ವಿಚಾರಣೆ ಮಾಡಿ ಮತ್ತು ಸಂಭಾವ್ಯ ಅಡಚಣೆಗಳನ್ನು ಗುರುತಿಸಿ.
ಸುಧಾರಿತ Nx ಪರಿಕಲ್ಪನೆಗಳು
ಒಮ್ಮೆ ನೀವು Nx ನ ಮೂಲಭೂತ ಅಂಶಗಳೊಂದಿಗೆ ಆರಾಮದಾಯಕವಾದ ನಂತರ, ನಿಮ್ಮ ಡೆವಲಪ್ಮೆಂಟ್ ವರ್ಕ್ಫ್ಲೋ ಅನ್ನು ಮತ್ತಷ್ಟು ಹೆಚ್ಚಿಸಲು ನೀವು ಕೆಲವು ಸುಧಾರಿತ ಪರಿಕಲ್ಪನೆಗಳನ್ನು ಅನ್ವೇಷಿಸಬಹುದು:
- ಕಸ್ಟಮ್ ಜೆನರೇಟರ್ಗಳು: ಹೊಸ ಪ್ರಾಜೆಕ್ಟ್ಗಳು, ಕಾಂಪೊನೆಂಟ್ಗಳು ಮತ್ತು ಮಾಡ್ಯೂಲ್ಗಳ ರಚನೆಯನ್ನು ಸ್ವಯಂಚಾಲಿತಗೊಳಿಸಲು ಕಸ್ಟಮ್ ಜೆನರೇಟರ್ಗಳನ್ನು ರಚಿಸಿ. ಇದು ಡೆವಲಪ್ಮೆಂಟ್ ಸಮಯವನ್ನು ಗಮನಾರ್ಹವಾಗಿ ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ಸ್ಥಿರತೆಯನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ.
- Nx ಪ್ಲಗಿನ್ಗಳು: ಕಸ್ಟಮ್ ಟೂಲ್ಗಳು ಮತ್ತು ಇಂಟಿಗ್ರೇಷನ್ಗಳೊಂದಿಗೆ Nx ನ ಕಾರ್ಯವನ್ನು ವಿಸ್ತರಿಸಲು Nx ಪ್ಲಗಿನ್ಗಳನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಿ.
- ಮಾಡ್ಯೂಲ್ ಫೆಡರೇಶನ್: ನಿಮ್ಮ ಅಪ್ಲಿಕೇಶನ್ನ ಸ್ವತಂತ್ರ ಭಾಗಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ನಿರ್ಮಿಸಲು ಮತ್ತು ನಿಯೋಜಿಸಲು ಮಾಡ್ಯೂಲ್ ಫೆಡರೇಶನ್ ಬಳಸಿ. ಇದು ವೇಗದ ನಿಯೋಜನೆಗಳು ಮತ್ತು ಹೆಚ್ಚಿನ ನಮ್ಯತೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ.
- Nx ಕ್ಲೌಡ್: ಸುಧಾರಿತ ಬಿಲ್ಡ್ ಒಳನೋಟಗಳು, ವಿತರಿತ ಕಾರ್ಯ ನಿರ್ವಹಣೆ, ಮತ್ತು ರಿಮೋಟ್ ಕ್ಯಾಶಿಂಗ್ ಪಡೆಯಲು Nx ಕ್ಲೌಡ್ನೊಂದಿಗೆ ಸಂಯೋಜಿಸಿ.
ತೀರ್ಮಾನ
Nx ವರ್ಕ್ಸ್ಪೇಸ್ಗಳು ಫ್ರಂಟ್ಎಂಡ್ ಮೊನೊರೆಪೊಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಒಂದು ಶಕ್ತಿಯುತ ಮತ್ತು ಸಮರ್ಥ ಮಾರ್ಗವನ್ನು ಒದಗಿಸುತ್ತವೆ. Nx ನ ಸುಧಾರಿತ ಟೂಲಿಂಗ್ ಮತ್ತು ಫೀಚರ್ಗಳನ್ನು ಬಳಸಿಕೊಳ್ಳುವ ಮೂಲಕ, ನೀವು ಕೋಡ್ ಶೇರಿಂಗ್, ಬಿಲ್ಡ್ ಪರ್ಫಾರ್ಮೆನ್ಸ್, ಮತ್ತು ಡೆವಲಪರ್ ಸಹಯೋಗವನ್ನು ಸುಧಾರಿಸಬಹುದು, ಇದು ಸ್ಕೇಲೆಬಲ್ ಮತ್ತು ನಿರ್ವಹಿಸಬಲ್ಲ ಫ್ರಂಟ್ಎಂಡ್ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಕಾರಣವಾಗುತ್ತದೆ. Nx ಅನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳುವುದು ನಿಮ್ಮ ಡೆವಲಪ್ಮೆಂಟ್ ಪ್ರಕ್ರಿಯೆಯನ್ನು ಸುವ್ಯವಸ್ಥಿತಗೊಳಿಸಬಹುದು ಮತ್ತು ನಿಮ್ಮ ತಂಡಕ್ಕೆ ಗಮನಾರ್ಹ ಉತ್ಪಾದಕತೆಯ ಲಾಭಗಳನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಬಹುದು, ವಿಶೇಷವಾಗಿ ಸಂಕೀರ್ಣ ಮತ್ತು ದೊಡ್ಡ-ಪ್ರಮಾಣದ ಪ್ರಾಜೆಕ್ಟ್ಗಳಲ್ಲಿ ಕೆಲಸ ಮಾಡುವಾಗ. ಫ್ರಂಟ್ಎಂಡ್ ಕ್ಷೇತ್ರವು ವಿಕಸಿಸುತ್ತಲೇ ಇರುವುದರಿಂದ, Nx ನೊಂದಿಗೆ ಮೊನೊರೆಪೊ ಡೆವಲಪ್ಮೆಂಟ್ ಅನ್ನು ಕರಗತ ಮಾಡಿಕೊಳ್ಳುವುದು ಫ್ರಂಟ್ಎಂಡ್ ಇಂಜಿನಿಯರ್ಗಳಿಗೆ ಹೆಚ್ಚು ಮೌಲ್ಯಯುತವಾದ ಕೌಶಲ್ಯವಾಗುತ್ತಿದೆ.
ಈ ಮಾರ್ಗದರ್ಶಿಯು ಫ್ರಂಟ್ಎಂಡ್ Nx ವರ್ಕ್ಸ್ಪೇಸ್ ಡೆವಲಪ್ಮೆಂಟ್ನ ಸಮಗ್ರ ಅವಲೋಕನವನ್ನು ಒದಗಿಸಿದೆ. ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಅನುಸರಿಸುವ ಮೂಲಕ ಮತ್ತು ಸುಧಾರಿತ ಪರಿಕಲ್ಪನೆಗಳನ್ನು ಅನ್ವೇಷಿಸುವ ಮೂಲಕ, ನೀವು Nx ನ ಸಂಪೂರ್ಣ ಸಾಮರ್ಥ್ಯವನ್ನು ಅನ್ಲಾಕ್ ಮಾಡಬಹುದು ಮತ್ತು ಅದ್ಭುತ ಫ್ರಂಟ್ಎಂಡ್ ಅಪ್ಲಿಕೇಶನ್ಗಳನ್ನು ನಿರ್ಮಿಸಬಹುದು.