εξαρτήσεις έναντι devDependencies

Έχετε αναρωτηθεί ποτέ ποια είναι η διαφορά μεταξύ αυτών των δύο τύπων εξαρτήσεων μέσα στο package.json σας; Σε αυτό το άρθρο θα προσπαθήσω να απαντήσω σε αυτή την ερώτηση χρησιμοποιώντας απλές λέξεις.

Ποιες είναι οι εξαρτήσεις και για ποιους χρησιμοποιούνται;

Αν δεν είστε προγραμματιστής από το 2007 και εγκαθιστάτε πλαίσια και libs χρησιμοποιώντας διαχειριστές πακέτων, θα πρέπει να χρησιμοποιείτε εξαρτήματα ακόμη και αν δεν γνωρίζατε γι 'αυτά. Φανταστείτε ότι έχετε δημιουργήσει υπέροχη ιστοσελίδα χρησιμοποιώντας Vue και έχετε εγκαταστήσει το με npm. Και μπορείτε να θελήσετε άλλους ανθρώπους να δουν τι είναι ένας εκπληκτικός προγραμματιστής που είστε και έχετε ωθήσει το έργο σας σε ένα github repo, και φυσικά έχετε προσθέσει το node_modules σας σε ένα αρχείο .gitignore, επειδή είστε έξυπνος προγραμματιστής. Στη συνέχεια, άλλοι άνθρωποι αντιγράφουν το έργο σας στις μηχανές τους και προσπαθούν να το εκτελέσουν σε ένα localhost, αλλά oopppss, τίποτα δεν λειτουργεί ... Όλα αυτά συμβαίνουν εξαιτίας του χρησιμοποιούμενου Vue, το οποίο εγκαταστάθηκε μέσα στο node_modules που δεν έχετε πιέσει. Η μόνη λύση αυτού του προβλήματος είναι να εκτελέσετε απλά script npm εγκατάστασης μέσα στο φάκελο του έργου σας

Και αυτό συμβαίνει όταν το package.json μπαίνει στο παιχνίδι. Αυτή η εντολή θα μεταβεί στο package.json σας και θα εγκαταστήσει όλα τα πλαίσια και libs που αναφέρονται στις εξαρτήσεις σας. Για παράδειγμα, στην περίπτωσή μου, το υλικό Vue και Vue θα εγκατασταθεί + απαραίτητα πακέτα για ένα σταθερό έργο npm

Πώς εξαρτώνται οι εξαρτήσεις μέσα στο package.json σας;

Όταν εγκαθιστάτε κάποια lib χρησιμοποιώντας npm, όλες οι απαραίτητες πληροφορίες προσθέτουν αυτόματα σε εξαρτήσεις. Για παράδειγμα, ας εγκαταστήσουμε το Vuex χρησιμοποιώντας npm install vuex --save

Το Vuex και όλα τα επιπλέον απαραίτητα πακέτα έχουν προστεθεί στις εξαρτήσεις σας με επιτυχία.

εξαρτήσεις έναντι devDependencies

Και τώρα είναι καιρός να απαντήσουμε στην κύρια ερώτηση αυτού του άρθρου, ποια είναι η διαφορά μεταξύ αυτών των δύο τύπων εξαρτήσεων;

Οι dev dependencies θα πρέπει να περιλαμβάνουν πακέτα που χρησιμοποιούνται κατά την ανάπτυξη ή που χρησιμοποιούνται για την κατασκευή του πακέτου σας, για παράδειγμα, mocha, jscs, grunt-contrib-watch, gulp-jade κλπ. Αυτά τα πακέτα είναι ασαφή μόνο κατά την ανάπτυξη του έργου σας, Το ESlint χρησιμοποιείται για να ελέγξει τα πάντα κατά την κατασκευή της δέσμης σας. Έτσι, εγκαταστήστε όλα αυτά τα πακέτα χρησιμοποιώντας τη σημαία -dev, αυτό θα πει στο npm, heeey, χρειάζομαι αυτά τα πακέτα για ανάπτυξη, έτσι αυτό θα προσθέσει αυτόματα το πακέτο σε devdeependencies αντί των συνηθισμένων εξαρτήσεων.

Παρεμπιπτόντως, εγκαταστήστε το npm από προεπιλογή, εγκαταστήζοντας πακέτα από εξαρτήσεις και devdeependencies. Δεν έχω δει τη χρήση αυτής της σημαίας για χρόνια, αλλά θα σας ενημερώσω για αυτό, για μικρά έργα αυτό μπορεί να λειτουργήσει npm install --production, --production σημαία λέει στο npm, heey, θέλω να εγκαταστήσετε πακέτα μόνο από συνήθεις εξαρτήσεις.

Οι εξαρτήσεις θα πρέπει να περιέχουν libs και framewors στην οποία είναι ενσωματωμένη η εφαρμογή σας, όπως Vue, React, Angular, Express, JQuery κ.λπ. Θα συμφωνήσετε μαζί μου, αν λέω, ότι το έργο σας θα λειτουργήσει χωρίς αυτά τα πακέτα (αν τα χρησιμοποιείτε , φυσικά).

συμπέρασμα

Συμπληρώνοντας, χρησιμοποιήστε τη σημαία -dev, εάν εγκαθιστάτε πακέτα που θα χρησιμοποιήσετε κατά την ανάπτυξη, και μην το κάνετε εάν το πακέτο που εγκαθιστάτε είναι για παραγωγή.

Σας ευχαριστώ που διαβάσατε το άρθρο μου, χτυπήστε για αυτή την ιστορία για να με βοηθήσετε να μεγαλώσω το μεσαίο προφίλ μου, διαβάστε τα άλλα μου άρθρα σχετικά με τον προγραμματισμό: