window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster υπάρχει ήδη') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Πρώτες βοήθειες για σπασμένες εξαρτήσεις JavaScript - The Codest
The Codest
  • Σχετικά με εμάς
  • Υπηρεσίες
    • Ανάπτυξη λογισμικού
      • Ανάπτυξη Frontend
      • Backend Ανάπτυξη
    • Staff Augmentation
      • Frontend Developers
      • Backend Developers
      • Μηχανικοί δεδομένων
      • Μηχανικοί cloud
      • Μηχανικοί QA
      • Άλλα
    • Συμβουλευτική
      • Έλεγχος & Συμβουλευτική
  • Βιομηχανίες
    • Fintech & Τραπεζική
    • E-commerce
    • Adtech
    • Healthtech
    • Κατασκευή
    • Εφοδιαστική
    • Αυτοκίνητο
    • IOT
  • Αξία για
    • CEO
    • CTO
    • Διευθυντής παράδοσης
  • Η ομάδα μας
  • Case Studies
  • Μάθετε πώς
    • Blog
    • Συναντήσεις
    • Διαδικτυακά σεμινάρια
    • Πόροι
Καριέρα Ελάτε σε επαφή
  • Σχετικά με εμάς
  • Υπηρεσίες
    • Ανάπτυξη λογισμικού
      • Ανάπτυξη Frontend
      • Backend Ανάπτυξη
    • Staff Augmentation
      • Frontend Developers
      • Backend Developers
      • Μηχανικοί δεδομένων
      • Μηχανικοί cloud
      • Μηχανικοί QA
      • Άλλα
    • Συμβουλευτική
      • Έλεγχος & Συμβουλευτική
  • Αξία για
    • CEO
    • CTO
    • Διευθυντής παράδοσης
  • Η ομάδα μας
  • Case Studies
  • Μάθετε πώς
    • Blog
    • Συναντήσεις
    • Διαδικτυακά σεμινάρια
    • Πόροι
Καριέρα Ελάτε σε επαφή
Πίσω βέλος GO BACK
2018-12-27
Ανάπτυξη λογισμικού

Πρώτες βοήθειες για σπασμένες εξαρτήσεις JavaScript

Daniel Grek

Αν είστε προγραμματιστής λογισμικού, τότε πιθανώς γνωρίζετε ήδη ότι ένας από τους πολλούς ρόλους σας δεν είναι σίγουρα να είστε ένας ακόμη εφευρέτης τροχών. Τουλάχιστον, όχι στις περισσότερες περιπτώσεις.

Θα ήθελα να γράψω για JavaScript εξαρτήσεις. Αλλά ας ξεκινήσουμε από την αρχή. Εάν είστε προγραμματιστής λογισμικού, τότε πιθανώς γνωρίζετε ήδη, ότι ένας από τους πολλούς ρόλους σας δεν είναι σίγουρα να είστε ένας ακόμη εφευρέτης τροχών. Τουλάχιστον, όχι στις περισσότερες περιπτώσεις. Ο κόσμος έχει προχωρήσει αρκετά, ώστε να πούμε ότι σήμερα υπάρχουν πακέτα για σχεδόν τα πάντα, που κάνουν την ανάπτυξή μας πιο εύκολη και αποτελεσματική.

Αυτό φυσικά δεν αποτελεί ενθάρρυνση για απώλεια ενδιαφέροντος για άλλα θέματα - κάθε πακέτο έχει αρκετά μεγάλο χώρο για να βελτιωθεί και να εξελιχθεί. Ωστόσο, ο επιχειρηματικός σας στόχος είναι να φέρετε ένα πλήρες προϊόν σε ένα πιάτο ακριβώς στην ώρα του ή ακόμη και πριν από την ώρα του. Τα πακέτα θα σας βοηθήσουν να εκπληρώσετε αυτά τα σχέδια, φέρνοντας npm ή νήματα στην κορυφή της λίστας των καλύτερων φίλων σας, αλλά να ξέρετε: κάθε λύση, όπως και αυτή, μπορεί επίσης να ενέχει κινδύνους. Και θα προσπαθήσουμε να τον περιγράψουμε και να σας δείξουμε έναν καλύτερο τρόπο για να τη γλιτώσετε στο παρακάτω άρθρο.

Ας ξεκινήσουμε με μια ιστορία...

Φανταστείτε ένα μεγάλο JavaScript έργο. Η επιχειρηματική απαίτηση υποχρεώνει τους προγραμματιστές να χρησιμοποιήσουν ένα συγκεκριμένο πακέτο, επιτρέποντας τη σωστή ενσωμάτωση με ένα άλλο σύστημα ενός πελάτη. Και αυτό είναι απολύτως εντάξει. MVP έχει φθάσει εγκαίρως, η επόμενη σύμβαση έχει υπογραφεί και η ανάπτυξη συνεχίζεται. Ο πελάτης ζητά να ενσωματώσει το επόμενο μέρος ενός συστήματος, το οποίο απαιτεί την ενημέρωση του πακέτου σας.

Αυτό το μέρος πηγαίνει καλά, μέχρι να γίνουν οι δοκιμές. Φαίνεται ότι το πακέτο περιέχει ένα απλό, αλλά ενοχλητικό σφάλμα, το οποίο δεν έχει ακόμη διορθωθεί σε καμία έκδοση του προϊόντος και είναι γνωστό ότι αυτό δεν θα συμβεί αρκετά σύντομα. Δεν μπορείτε απλά να διορθώσετε το node_modules κατάλογος - θα πρέπει να αφαιρεθεί από το αποθετήριο σας από την παρακολούθηση, επομένως οι συνεργάτες σας δεν θα μάθουν ποτέ τίποτα για τις αλλαγές σας! Λοιπόν, ενώ διαβάζατε αυτό το κείμενο, πιθανότατα έχετε ήδη καταλάβει τι πρέπει να κάνετε - fork. Αλλά χρειάζεστε πραγματικά ένα τέτοιο σφυρί;

Κατανοήστε το πρόβλημά σας

Πρέπει να γνωρίζετε αν το πρόβλημα που αντιμετωπίζετε αφορά μόνο εσάς ή μια ευρύτερη κοινότητα. Μερικές φορές, οι άνθρωποι ερμηνεύουν την έλλειψη συγκεκριμένης λειτουργικότητας ως σφάλμα, κάτι που δεν είναι πάντα σωστό. Ως εκ τούτου, η λύση σας μπορεί να μην γίνει αποδεκτή από μια κοινότητα και να μην συμπεριληφθεί σε ένα επίσημο αποθετήριο. Ωστόσο, εξακολουθείτε να το χρειάζεστε εδώ και τώρα. Λοιπόν, ας το επιδιορθώσουμε!

Σύμφωνα με τις σημειώσεις έκδοσης του αποθετηρίου github, το patch-package ) κυκλοφόρησε επίσημα τον Μάιο του 2017. It είναι ένα ισχυρό εργαλείο, το οποίο επιτρέπει τις τροποποιήσεις μέσα στο έργο εξάρτησης να εγκατασταθούν στο node_modules κατάλογος. Κάποιοι μπορεί να πουν ότι αυτό είναι μια τρέλα - πυροβολώντας εντολή εγκατάστασης ο διαχειριστής της εξάρτησής σας θα αντικαταστήσει τις αλλαγές.

Λοιπόν, αυτό είναι σωστό. Ωστόσο, ένα patch-package συνυπάρχει με npm και νήματα τέλεια (πρέπει να παραδεχτώ ότι λειτουργεί ελαφρώς καλύτερα με το npm μέχρι στιγμής, μπορείτε να διαβάσετε περισσότερα στην ενότητα "Why you should use postinstall-prepare with Yarn?" του αρχείου README) και εκμεταλλεύεται πλήρως την προετοιμασία ενός σεναρίου ("script": { "prepare":""}) του package.json αρχείο. Το patch-package δημιουργεί κυριολεκτικά έναν κατάλογο diff μεταξύ των αλλαγών σας και του αρχικού πακέτου, αποθηκευμένο στο φάκελο patch του τρέχοντος έργου σας..

Αφού εκτελέσει την εντολή install και κατεβάσει όλες τις εξαρτήσεις, εφαρμόζει αυτή τη διαφορά στον κατάλογο του έργου, κάνοντας μια τέλεια ανακατασκευή των αλλαγών σας για όλους τους συνεργάτες. Αυτό κάνει τη ζωή σας πιο απλή, έτσι δεν είναι; Η λύση αυτή έχει και κάποια μειονεκτήματα. Το patch-package δεν μπορεί να διορθώσει τις εξαρτήσεις του πακέτου σας ή να κάνει οποιεσδήποτε αλλαγές στο package.json.

Σε αυτή την περίπτωση μπορείτε να χρησιμοποιήσετε τη λύση με το πιρούνι. Επίσης, πρέπει να λάβετε υπόψη σας τον αριθμό των αλλαγών που πρόκειται να εφαρμόσετε στο πακέτο εξάρτησής σας και κατά πόσο θα αυξηθούν με την πάροδο του χρόνου. Σε περίπτωση που θα - θα πρέπει να σκεφτείτε προσεκτικά όταν χρησιμοποιείτε το fork, καθώς πρόκειται για ένα δικό σας έργο.

Μην είστε εγωιστές!

Το patching είναι ένας πολύ καλός τρόπος για να διορθώσετε τις εξαρτήσεις σας χωρίς να δημιουργείτε ατελείωτες διακλαδώσεις και να δημιουργείτε πολλαπλές πηγές έργου. Αλλά θα πρέπει πάντα να θυμάστε, ότι η αξιοποίηση της κοινότητας δεν πρέπει να είναι μονόδρομος. Αν βρείτε ένα σφάλμα ή νιώθετε ότι μπορείτε να βελτιώσετε το πακέτο που χρησιμοποιείτε, θα πρέπει πάντα να σκέφτεστε να βοηθήσετε τους άλλους, καταγράφοντας ένα ζήτημα ή ακόμα και συνεισφέροντας στο έργο!

Σχετικά άρθρα

Ανάπτυξη λογισμικού

Κατασκευάστε μελλοντικά ασφαλείς εφαρμογές Web: γνώσεις από την ομάδα εμπειρογνωμόνων του The Codest

Ανακαλύψτε πώς η The Codest υπερέχει στη δημιουργία κλιμακούμενων, διαδραστικών εφαρμογών ιστού με τεχνολογίες αιχμής, παρέχοντας απρόσκοπτη εμπειρία χρήστη σε όλες τις πλατφόρμες. Μάθετε πώς η τεχνογνωσία μας οδηγεί στον ψηφιακό μετασχηματισμό και την επιχειρηματική...

THECODEST
Ανάπτυξη λογισμικού

Top 10 εταιρείες ανάπτυξης λογισμικού με έδρα τη Λετονία

Μάθετε για τις κορυφαίες εταιρείες ανάπτυξης λογισμικού της Λετονίας και τις καινοτόμες λύσεις τους στο τελευταίο μας άρθρο. Ανακαλύψτε πώς αυτοί οι τεχνολογικοί ηγέτες μπορούν να βοηθήσουν στην ανύψωση της επιχείρησής σας.

thecodest
Λύσεις Enterprise & Scaleups

Βασικά στοιχεία ανάπτυξης λογισμικού Java: Α Guide to Outsourcing Successfully (Οδηγός για την επιτυχή εξωτερική ανάθεση)

Εξερευνήστε αυτόν τον βασικό οδηγό για την επιτυχή ανάπτυξη λογισμικού outsourcing Java για να αυξήσετε την αποδοτικότητα, να αποκτήσετε πρόσβαση στην τεχνογνωσία και να οδηγήσετε την επιτυχία των έργων με The Codest.

thecodest
Ανάπτυξη λογισμικού

Ο απόλυτος οδηγός για το Outsourcing στην Πολωνία

Η έξαρση της outsourcing στην Πολωνία οφείλεται στις οικονομικές, εκπαιδευτικές και τεχνολογικές εξελίξεις, που ευνοούν την ανάπτυξη της πληροφορικής και το φιλικό προς τις επιχειρήσεις κλίμα.

TheCodest
Λύσεις Enterprise & Scaleups

Ο πλήρης οδηγός εργαλείων και τεχνικών ελέγχου πληροφορικής

Οι έλεγχοι ΤΠ διασφαλίζουν ασφαλή, αποτελεσματικά και συμβατά συστήματα. Μάθετε περισσότερα για τη σημασία τους διαβάζοντας ολόκληρο το άρθρο.

The Codest
Jakub Jakubowicz CTO & Συνιδρυτής

Εγγραφείτε στη βάση γνώσεών μας και μείνετε ενήμεροι για την τεχνογνωσία από τον τομέα της πληροφορικής.

    Σχετικά με εμάς

    The Codest - Διεθνής εταιρεία ανάπτυξης λογισμικού με κέντρα τεχνολογίας στην Πολωνία.

    Ηνωμένο Βασίλειο - Έδρα

    • Γραφείο 303B, 182-184 High Street North E6 2JA
      Λονδίνο, Αγγλία

    Πολωνία - Τοπικοί κόμβοι τεχνολογίας

    • Πάρκο γραφείων Fabryczna, Aleja
      Pokoju 18, 31-564 Κρακοβία
    • Πρεσβεία του εγκεφάλου, Konstruktorska
      11, 02-673 Βαρσοβία, Πολωνία

      The Codest

    • Αρχική σελίδα
    • Σχετικά με εμάς
    • Υπηρεσίες
    • Case Studies
    • Μάθετε πώς
    • Καριέρα
    • Λεξικό

      Υπηρεσίες

    • Συμβουλευτική
    • Ανάπτυξη λογισμικού
    • Backend Ανάπτυξη
    • Ανάπτυξη Frontend
    • Staff Augmentation
    • Backend Developers
    • Μηχανικοί cloud
    • Μηχανικοί δεδομένων
    • Άλλα
    • Μηχανικοί QA

      Πόροι

    • Γεγονότα και μύθοι σχετικά με τη συνεργασία με εξωτερικό συνεργάτη ανάπτυξης λογισμικού
    • Από τις ΗΠΑ στην Ευρώπη: Γιατί οι αμερικανικές νεοσύστατες επιχειρήσεις αποφασίζουν να μετεγκατασταθούν στην Ευρώπη
    • Σύγκριση υπεράκτιων κόμβων ανάπτυξης τεχνολογίας: Ευρώπη (Πολωνία), ASEAN (Φιλιππίνες), Ευρασία (Τουρκία)
    • Ποιες είναι οι κορυφαίες προκλήσεις των CTOs και των CIOs;
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Πνευματικά δικαιώματα © 2025 από The Codest. Όλα τα δικαιώματα διατηρούνται.

    elGreek
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean es_ESSpanish nl_NLDutch etEstonian elGreek