Ένα από τα καλύτερα χαρακτηριστικά του Node είναι οι διαχειριστές πακέτων. Υπάρχουν πολλοί διαφορετικοί τρόποι εγκατάστασης και διαχείρισης πακέτων κόμβων. Εδώ, θα εξετάσουμε τα πλεονεκτήματα και τα μειονεκτήματα της χρήσης ενός διαχειριστή πακέτων ή της χρήσης περισσότερων του ενός διαχειριστών πακέτων και μερικούς από τους καλύτερους τρόπους για να τα χρησιμοποιήσετε μαζί.
Τι είναι ένας διαχειριστής πακέτων ρωτάτε; Διαβάστε παρακάτω για να μάθετε.
Τι είναι οι διαχειριστές πακέτων;
Στον κόσμο της ανάπτυξης λογισμικού, οι εξαρτήσεις είναι αυτό που χρειάζεστε για να εκτελέσετε το έργο σας. Είναι σαν συστατικά μιας συνταγής: χωρίς αυτά δεν γίνεται τίποτα.
Για παράδειγμα, εάν γράφετε μια εφαρμογή που χρησιμοποιεί JavaScript και θέλει πρόσβαση σε ορισμένες λειτουργίες από μια βιβλιοθήκη που ονομάζεται jQuery
(το οποίο χρησιμοποιούσαν κάποτε πολλοί ιστότοποι), τότε το jQuery θα είναι μια από τις εξαρτήσεις σας. Θα το χρειαστείτε εγκατεστημένο έτσι ώστε όταν κάποιος επισκέπτεται τον ιστότοπό σας, να μπορεί να δει αυτά τα όμορφα κινούμενα σχέδια ή τις αλληλεπιδράσεις που έχετε δημιουργήσει με αυτόν!Οι διαχειριστές πακέτων βοηθούν στη διαχείριση αυτών των σχέσεων μεταξύ έργων, διαχειριζόμενοι τις εξαρτήσεις για εμάς, έτσι δεν χρειάζεται να ανησυχούμε για τη μη αυτόματη λήψη τους κάθε φορά τη στιγμή που θέλουμε κάτι νέο να προστεθεί ή να ενημερωθεί—φροντίζουν επίσης ότι όλα λειτουργούν σωστά και λειτουργούν ομαλά μόλις εγκατασταθούν (κάτι που μερικές φορές είναι πιο εύκολο να το πούμε παρά Έγινε).
Ο κόμβος έρχεται προσυσκευασμένος με έναν Διαχειριστή πακέτων που ονομάζεται NPM
Το NPM είναι ο προεπιλεγμένος διαχειριστής πακέτων και ως εκ τούτου, είναι ενσωματωμένος στον χρόνο εκτέλεσης του κόμβου. Μπορείτε να χρησιμοποιήσετε το NPM για να εγκαταστήσετε πακέτα από το GitHub ή NPM κατευθείαν. Μπορείτε επίσης να δημοσιεύσετε τα πακέτα σας σε αυτόν τον ιστότοπο, ώστε άλλοι να μπορούν να τα εγκαταστήσουν χρησιμοποιώντας την έκδοση του NPM που διαθέτουν.
Το NPM δεν χρησιμοποιείται μόνο για την εγκατάσταση πακέτων. χειρίζεται επίσης την επίλυση εξαρτήσεων και τις διενέξεις εκδόσεων μεταξύ δύο ή περισσότερων απαιτούμενων βιβλιοθηκών ή λειτουργικών μονάδων στη βάση κώδικα της εφαρμογής σας.
Αυτό σημαίνει ότι εάν υπάρχουν πολλές εκδόσεις για κάτι παρόμοιο Express που τρέχει στον διακομιστή σας ανά πάσα στιγμή, το NPM θα βεβαιωθεί ότι κάθε παρουσία παίρνει αυτό που χρειάζεται χωρίς να έρχεται σε σύγκρουση άλλες περιπτώσεις που κάνουν παρόμοια δουλειά -- και όλα αυτά χωρίς να απαιτούν από εσάς να κάνετε κάτι ιδιαίτερο πέρα από απλά κλήση απαιτώ() σε ένα αντικείμενο όταν χρειάζεται!
Το NPM είναι ένα απίστευτα ισχυρό εργαλείο και είναι εύκολο να ξεκινήσετε με αυτό. Αλλά αν είστε νέοι στο Node και το JavaScript, μπορεί να είναι δύσκολο να γνωρίζετε ποια εργαλεία είναι διαθέσιμα για χρήση — και ποια είναι τα καλύτερα για ένα συγκεκριμένο έργο.
Το κύριο πρόβλημα με το NPM είναι ότι αργεί να εγκαταστήσει πακέτα. Αυτό δεν είναι τεράστιο αν εκτελείτε περιστασιακά ένα ή δύο σενάρια, αλλά μπορεί να είναι απίστευτα απογοητευτικό αν προσπαθείτε να δημιουργήσετε μια ολόκληρη εφαρμογή που χρησιμοποιεί δεκάδες διαφορετικές βιβλιοθήκες και εργαλεία.
Το νήμα και το PNPM είναι πιο γρήγορα από το NPM
Το Yarn είναι μια ασφαλής και αξιόπιστη εναλλακτική λύση για το NPM που χρησιμοποιεί ένα αρχείο κλειδώματος για να αποτρέψει τυχαίες αντικαταστάσεις και διασφαλίζει ότι οι εξαρτήσεις σας επιλύονται σωστά κατά την εγκατάσταση πακέτων.
Έχει επίσης ταχύτερο χρόνο εγκατάστασης από το NPM, γεγονός που το καθιστά ιδιαίτερα χρήσιμο εάν εργάζεστε με μεγάλα έργα που έχουν πολλές μονάδες με πολλές εξαρτήσεις.
Το PNPM είναι μια εναλλακτική λύση τόσο για το Yarn όσο και για το NPM, αλλά δεν είναι ακόμα τόσο δημοφιλές επειδή δεν διαθέτει ορισμένες από τις δυνατότητες που υπάρχουν σε κανένα από τα δύο (όπως αρχεία κλειδώματος). Ωστόσο, οι προγραμματιστές του ισχυρίζονται ότι το PNPM μπορεί να εγκαταστήσει πακέτα έως και τέσσερις φορές πιο γρήγορα από το Yarn ή το NPM χάρη στην ελαφριά φύση του. Αυτό σημαίνει λιγότερη χρήση χώρου στο δίσκο και στον υπολογιστή σας!
Εάν χτίζετε ένα έργο που απαιτεί μόνο μια χούφτα εξαρτήσεις, τότε το Yarn ή το NPM θα είναι πιθανώς επαρκή. Ωστόσο, εάν εργάζεστε με μεγάλα έργα με πολλές ενότητες και εξαρτήσεις, τότε το PNPM θα μπορούσε να είναι η καλύτερη επιλογή για εσάς.
Πλεονεκτήματα της χρήσης πολλαπλών διαχειριστών πακέτων
Ένας μόνο διαχειριστής πακέτων μπορεί να χειριστεί μόνο μία έκδοση οποιασδήποτε δεδομένης βιβλιοθήκης κάθε φορά. Εάν θέλετε να χρησιμοποιήσετε δύο διαφορετικές εκδόσεις της ίδιας βιβλιοθήκης για άλλα έργα ή σε διαφορετικά περιβάλλοντα (για παράδειγμα, παραγωγή vs. ανάπτυξη), τότε θα χρειαστείτε δύο ξεχωριστά πακέτα εγκατεστημένα στο σύστημά σας.
Αυτό μπορεί να οδηγήσει σε διενέξεις εάν και τα δύο πακέτα προσπαθήσουν να ενημερώσουν την έκδοση της ίδιας εξάρτησης ταυτόχρονα. Η χρήση πολλών διαχειριστών πακέτων σημαίνει ότι έχετε περισσότερο έλεγχο σχετικά με το ποιες εξαρτήσεις είναι εγκατεστημένες και πού βοηθά στην αποφυγή αυτού του είδους των διενέξεων.
Ένα άλλο πλεονέκτημα είναι ότι όταν χρησιμοποιείτε πολλούς διαχειριστές πακέτων, ο καθένας θα παρέχει το δικό του μοναδικό σύνολο χαρακτηριστικών. Μερικοί μπορεί να είναι πιο γρήγοροι από άλλους. Ορισμένοι μπορεί να έχουν καλύτερες δυνατότητες διαχείρισης εξάρτησης. άλλα μπορεί να είναι πιο κατάλληλα για την ανάπτυξη εφαρμογών εντός συγκεκριμένων πλαισίων όπως ReactJS ή VueJS κ.λπ...
Τέλος, η χρήση πολλών διαχειριστών πακέτων μπορεί να συμβάλει στη βελτίωση της παραγωγικότητας του προγραμματιστή σας μειώνοντας τον χρόνο που αφιερώνετε στην αναζήτηση και εγκατάσταση εξαρτήσεων. Αυτό συμβαίνει επειδή κάθε διαχειριστής πακέτων θα σχεδιαστεί έχοντας κατά νου ένα συγκεκριμένο σύνολο περιπτώσεων χρήσης (για παράδειγμα, ταχύτητα vs. ασφάλεια vs. διαχείριση εξαρτήσεων, κλπ...).
Χρησιμοποιήστε πολλαπλούς διαχειριστές πακέτων εγκαθιστώντας τους παγκοσμίως
Χρησιμοποιώντας τη γραμμή εντολών, μπορείτε να καθορίσετε τον διαχειριστή πακέτων που θέλετε να χρησιμοποιήσετε για ένα συγκεκριμένο έργο. Ρυθμίστε πολλούς διαχειριστές πακέτων στον υπολογιστή σας:
- Το NPM έρχεται προσυσκευασμένο με Node. Αυτό θα σας επιτρέψει να εγκαταστήσετε άλλα πακέτα (και διαχειριστές πακέτων) από τη γραμμή εντολών και να διαχειριστείτε τις εξαρτήσεις σε όλα τα έργα σας με το NPM. Είναι επίσης χρήσιμο εάν θέλετε να εκτελείτε σενάρια NPM σε ένα πρόγραμμα περιήγησης (π.χ. Webpack), επειδή τα προγράμματα περιήγησης δεν διαθέτουν προεγκατεστημένο NPM!
- Εγκαταστήστε το Yarn παγκοσμίως, καθώς και χρησιμοποιώντας NPM. Αυτή είναι μια άλλη δημοφιλής επιλογή για τη διαχείριση εξαρτήσεων εντός έργων JavaScript. έχει ορισμένα πλεονεκτήματα έναντι του NPM που μπορεί να το κάνουν προτιμότερο για ορισμένους τύπους έργων ή ομάδων
- Τέλος, εγκαταστήστε το PNPM. Αυτός ο διαχειριστής πακέτων είναι μια διχάλα του NPM που έχει σχεδιαστεί για να είναι ταχύτερη και πιο σταθερή. Διαθέτει επίσης ορισμένες πρόσθετες λειτουργίες που μπορεί να είναι χρήσιμες για ορισμένους τύπους έργων, όπως υποστήριξη για εξαρτήσεις από το GitHub.
Σημειώστε ότι μια καθολική εγκατάσταση σημαίνει ότι το επιλεγμένο πακέτο θα είναι διαθέσιμο σε ολόκληρο το σύστημά σας (μπορείτε να έχετε πρόσβαση το πρόγραμμα οπουδήποτε μέσω της γραμμής εντολών), ενώ μια τοπική εγκατάσταση είναι προσβάσιμη μόνο από την τρέχουσα εργασία Ευρετήριο.
Παραδείγματα πραγματικού κόσμου για το πώς μπορείτε να χρησιμοποιήσετε πολλαπλούς διαχειριστές πακέτων
Δείτε αυτές τις χρήσεις:
1. Το νήμα και το NPM μπορούν να χρησιμοποιηθούν μαζί (π.χ. δημιουργία-αντίδραση-εφαρμογή)
Αυτό είναι χρήσιμο όταν θέλετε να επωφεληθείτε από την ταχύτητα και την αποτελεσματικότητα του Yarn, διατηρώντας παράλληλα τη συμβατότητα με τα πακέτα NPM. Εάν χρειάζεστε την πιο πρόσφατη έκδοση μιας βιβλιοθήκης που δεν έχει ενημερωθεί ακόμη για συμβατότητα με το Yarn ή εάν υπάρχει άλλος λόγος γιατί η ομάδα σας προτιμά να τηρεί το NPM παρά τη χαμηλότερη ταχύτητα ή το περιορισμένο σύνολο χαρακτηριστικών, τότε αυτό μπορεί να λειτουργήσει καλά για εσάς έργο. Βοηθά επίσης να αποφύγετε την ύπαρξη δύο ξεχωριστών δέντρων εξάρτησης στη ρύθμιση μονοφωνικών αποθεμάτων!
2. Χρήση Νήματος για παγκόσμια πακέτα και PNPM για τοπικές εγκαταστάσεις
Ενώ το PNPM είναι ο ταχύτερος διαχειριστής πακέτων, μπορεί να είναι δύσκολο να χρησιμοποιηθεί για παγκόσμια εγκατεστημένα πακέτα. Αυτό συμβαίνει επειδή χρησιμοποιεί διαφορετική δομή αρχείου που μπορεί να προκαλέσει προβλήματα συμβατότητας με προγράμματα όπως το Visual Studio Code. Εδώ μπαίνει το νήμα. Μπορείτε να το χρησιμοποιήσετε για τα καθολικά εγκατεστημένα πακέτα σας και το PNPM για τοπικές εγκαταστάσεις. Αυτή η λύση είναι ένας καλός τρόπος για να επωφεληθείτε από τα πλεονεκτήματα και των δύο διαχειριστών πακέτων χωρίς να χρειάζεται να αλλάξετε υπερβολικά τη ροή εργασίας σας. Με αυτήν τη ρύθμιση —αν θέλετε να γίνετε άγριοι— μπορείτε να αφαιρέσετε εντελώς το NPM από το σύστημά σας (αλλά είναι πάντα ωραίο να έχετε το NPM ως αντίγραφο ασφαλείας).
3. Χρήση PNPM με NPM ως εναλλακτική
Αυτή είναι μια καλή επιλογή που πρέπει να εξετάσετε σε περίπτωση που θέλετε να χρησιμοποιήσετε το PNPM, αλλά δεν θέλετε όλοι οι προγραμματιστές σας να πρέπει να μάθουν ακόμα ένα νέο εργαλείο. Τους επιτρέπει να συνεχίσουν να εργάζονται με το NPM μέχρι να αισθανθούν άνετα με το PNPM και να το χρειαστούν για την εργασία τους.
Η χρήση πολλαπλών διαχειριστών πακέτων κάνει τα πράγματα πιο εύκολα
Μπορείτε να χρησιμοποιήσετε πολλούς διαχειριστές πακέτων. Μπορείτε να τα εγκαταστήσετε καθολικά ή τοπικά και αν θέλετε να καθορίσετε ποιος διαχειριστής πακέτων θα χρησιμοποιηθεί για ένα συγκεκριμένο έργο, απλώς χρησιμοποιήστε τη γραμμή εντολών!
Εάν θέλετε να εγκαταστήσετε πολλούς διαχειριστές πακέτων στο σύστημά σας, βεβαιωθείτε ότι χρησιμοποιείτε την ίδια έκδοση του Node.js.
Συμπερασματικά, πιστεύουμε ότι θα πρέπει να χρησιμοποιήσετε περισσότερους από έναν διαχειριστές πακέτων. Είναι ένας πολύ καλός τρόπος για να ξεκινήσετε με το Node και επίσης να μάθετε μερικά νέα εργαλεία εάν είστε ήδη εξοικειωμένοι με το NPM. Εάν δεν έχετε ήδη εγκαταστήσει το Node, η εγκατάσταση είναι εύκολη στα Windows.