window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = Fenster if (w.LeadBooster) { console.warn('LeadBooster existiert bereits') } 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 }) }, } } })() Erste Hilfe für defekte JavaScript-Abhängigkeiten - The Codest
Der Codest
  • Über uns
  • Dienstleistungen
    • Software-Entwicklung
      • Frontend-Softwareentwicklung
      • Backend-Softwareentwicklung
    • Staff Augmentation
      • Frontend-Entwickler
      • Backend-Entwickler
      • Daten-Ingenieure
      • Cloud-Ingenieure
      • QS-Ingenieure
      • Andere
    • IT-Beratung
      • Prüfung und Beratung
  • Branchen
    • Fintech & Bankwesen
    • E-commerce
    • Adtech
    • Gesundheitstechnik
    • Herstellung
    • Logistik
    • Automobilindustrie
    • IOT
  • Wert für
    • CEO
    • CTO
    • Delivery Manager
  • Unser Team
  • Fallstudien
  • Gewusst wie
    • Blog
    • Begegnungen
    • Webinare
    • Ressourcen
Karriere Kontakt aufnehmen
  • Über uns
  • Dienstleistungen
    • Software-Entwicklung
      • Frontend-Softwareentwicklung
      • Backend-Softwareentwicklung
    • Staff Augmentation
      • Frontend-Entwickler
      • Backend-Entwickler
      • Daten-Ingenieure
      • Cloud-Ingenieure
      • QS-Ingenieure
      • Andere
    • IT-Beratung
      • Prüfung und Beratung
  • Wert für
    • CEO
    • CTO
    • Delivery Manager
  • Unser Team
  • Fallstudien
  • Gewusst wie
    • Blog
    • Begegnungen
    • Webinare
    • Ressourcen
Karriere Kontakt aufnehmen
Pfeil zurück ZURÜCK
2018-12-27
Software-Entwicklung

Erste Hilfe für defekte JavaScript-Abhängigkeiten

Daniel Grek

Wenn Sie ein Softwareentwickler sind, dann wissen Sie wahrscheinlich schon, dass eine Ihrer vielen Rollen definitiv nicht darin besteht, ein weiterer Raderfinder zu sein. Zumindest nicht in den meisten Fällen.

Ich würde gerne über Folgendes schreiben JavaScript Abhängigkeiten. Aber lassen Sie uns von vorne beginnen. Wenn Sie ein Softwareentwickler sind, dann wissen Sie wahrscheinlich schon, dass eine Ihrer vielen Rollen definitiv nicht darin besteht, ein weiterer Rad-Erfinder zu sein. Zumindest nicht in den meisten Fällen. Die Welt ist weit genug fortgeschritten, um sagen zu können, dass es heute Pakete für fast alles gibt, die unsere Entwicklung einfacher und effizienter machen.

Dies ist natürlich keine Ermutigung, das Interesse an anderen Themen zu verlieren - jedes Paket hat einen ziemlich großen Spielraum, um sich zu verbessern und weiterzuentwickeln. Ihr Unternehmensziel ist es jedoch, eine vollständige Produkt auf einem Teller pünktlich oder sogar noch bevor er fertig ist. Pakete helfen Ihnen, diese Pläne zu verwirklichen, indem sie npm oder Garn auf der Liste Ihrer besten Freunde ganz oben stehen, aber seien Sie sich bewusst: Jede Lösung, auch diese, kann auch Risiken mit sich bringen. Und wir werden versuchen, sie zu beschreiben und Ihnen im folgenden Artikel einen besseren Weg zu zeigen, wie Sie sie umgehen können.

Lassen Sie uns mit einer Geschichte beginnen...

Stellen Sie sich ein großes JavaScript vor Projekt. Die geschäftlichen Anforderungen zwingen die Entwickler, ein bestimmtes Paket zu verwenden, das eine ordnungsgemäße Integration mit einem anderen System eines Kunden ermöglicht. Und das ist völlig in Ordnung. MVP pünktlich geliefert wurde, der nächste Vertrag unterzeichnet wurde und die Entwicklung fortgesetzt wird. Der Kunde bittet darum, den nächsten Teil eines Systems zu integrieren, für den Ihr Paket aktualisiert werden muss.

Dieser Teil geht gut, bis die Tests abgefeuert werden. Es scheint, dass das Paket einen einfachen, aber unbequemen Fehler enthält, der noch in keiner Produktversion behoben wurde, und es ist bekannt, dass dies nicht so bald geschehen wird. Sie können nicht einfach Ihre Knoten_Module Verzeichnis - sollte es aus dem Repository entfernt werden, so dass Ihre Mitarbeiter nie etwas von Ihren Änderungen erfahren! Nun, während Sie dies gelesen haben, haben Sie wahrscheinlich schon verstanden, was zu tun ist - forken. Aber brauchen Sie wirklich einen solchen Hammer?

Verstehen Sie Ihr Problem

Sie müssen sich darüber im Klaren sein, ob das Problem, mit dem Sie konfrontiert sind, nur Sie oder eine größere Gemeinschaft betrifft. Manchmal wird das Fehlen einer bestimmten Funktion als Fehler interpretiert, was nicht immer richtig ist. Deshalb, Ihre Lösung wird möglicherweise nicht von einer Gemeinschaft akzeptiert und nicht in ein offizielles Repository aufgenommen.. Sie brauchen es aber trotzdem hier und jetzt. Also, auf geht's!

Laut den Veröffentlichungshinweisen des Github-Repositorys ist das Patch-Paket ) wurde im Mai 2017 offiziell veröffentlicht. It ist ein leistungsfähiges Werkzeug, das es ermöglicht, Änderungen innerhalb des Abhängigkeitsprojekts in Ihrem Knoten_Module Verzeichnis. Einige mögen sagen, dass dies ein ziemlicher Irrsinn ist - der Installationsbefehl Ihres Abhängigkeitsmanagers wird die Änderungen überschreiben.

Nun, das ist richtig. Allerdings koexistiert ein Patch-Paket mit npm und Garn perfekt (ich muss zugeben, dass es mit npm bisher etwas besser funktioniert, Sie können mehr im Abschnitt "Warum sollten Sie postinstall-prepare mit Yarn verwenden?" in der README-Datei lesen) und nutzt den vollen Vorteil einer Skriptvorbereitung ("script": {"prepare":""}) Ihrer paket.json Datei. Patch-package erstellt buchstäblich ein Diff-Verzeichnis zwischen Ihren Änderungen und dem Originalpaket, das im Patch-Ordner Ihres aktuellen Projekts gespeichert wird.

Nach dem Ausführen des Installationsbefehls und dem Herunterladen aller Abhängigkeiten wird dieser Unterschied auf das Projektverzeichnis angewandt, so dass Ihre Änderungen für alle Mitwirkenden perfekt rekonstruiert werden. Das macht Ihr Leben einfacher, nicht wahr? Die Lösung hat aber auch einige Nachteile. Das Patch-Paket kann keine Abhängigkeiten Ihres Pakets reparieren oder Änderungen in paket.json.

In diesem Fall können Sie die Fork-Lösung verwenden. Außerdem müssen Sie die Anzahl der Änderungen berücksichtigen, die Sie in Ihr Abhängigkeitspaket übernehmen wollen, und ob diese mit der Zeit wachsen werden. Falls dies der Fall ist, sollten Sie sich die Verwendung von fork gut überlegen, da es sich um Ihr eigenes Projekt handelt.

Seien Sie nicht egoistisch!

Patches sind eine großartige Möglichkeit, Abhängigkeiten zu beheben, ohne endlose Forks zu erstellen und mehrere Projektquellen zu erzeugen. Aber Sie sollten immer daran denken, dass die Nutzung der Community nicht nur in eine Richtung gehen sollte. Wenn Sie einen Fehler finden oder das Gefühl haben, dass Sie das Paket, das Sie verwenden, verbessern können, sollten Sie immer in Betracht ziehen, anderen zu helfen, indem Sie einen Fehler melden oder sogar zum Projekt beitragen!

Ähnliche Artikel

Software-Entwicklung

Zukunftssichere Web-Apps bauen: Einblicke vom The Codest-Expertenteam

Entdecken Sie, wie sich The Codest bei der Erstellung skalierbarer, interaktiver Webanwendungen mit Spitzentechnologien auszeichnet, die nahtlose Benutzererfahrungen auf allen Plattformen bieten. Erfahren Sie, wie unsere Expertise die digitale Transformation und...

DAS SCHÖNSTE
Software-Entwicklung

Top 10 Softwareentwicklungsunternehmen in Lettland

Erfahren Sie in unserem neuesten Artikel mehr über die besten Softwareentwicklungsunternehmen Lettlands und ihre innovativen Lösungen. Entdecken Sie, wie diese Technologieführer Ihr Unternehmen voranbringen können.

thecodest
Enterprise & Scaleups Lösungen

Grundlagen der Java-Softwareentwicklung: Ein Leitfaden für erfolgreiches Outsourcing

Entdecken Sie diesen wichtigen Leitfaden zum erfolgreichen Outsourcing der Java-Softwareentwicklung, um die Effizienz zu steigern, auf Fachwissen zuzugreifen und den Projekterfolg mit The Codest voranzutreiben.

thecodest
Software-Entwicklung

Der ultimative Leitfaden für Outsourcing in Polen

Der Anstieg des Outsourcings in Polen wird durch wirtschaftliche, bildungspolitische und technologische Fortschritte angetrieben, die das IT-Wachstum und ein unternehmensfreundliches Klima fördern.

TheCodest
Enterprise & Scaleups Lösungen

Der vollständige Leitfaden für IT-Audit-Tools und -Techniken

IT-Audits gewährleisten sichere, effiziente und gesetzeskonforme Systeme. Erfahren Sie mehr über ihre Bedeutung, indem Sie den vollständigen Artikel lesen.

Der Codest
Jakub Jakubowicz CTO & Mitbegründer

Abonnieren Sie unsere Wissensdatenbank und bleiben Sie auf dem Laufenden über das Fachwissen aus dem IT-Sektor.

    Über uns

    The Codest - Internationales Software-Unternehmen mit technischen Zentren in Polen.

    Vereinigtes Königreich - Hauptsitz

    • Büro 303B, 182-184 High Street North E6 2JA
      London, England

    Polen - Lokale Tech-Hubs

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Warszawa, Polen

      Der Codest

    • Startseite
    • Über uns
    • Dienstleistungen
    • Fallstudien
    • Gewusst wie
    • Karriere
    • Wörterbuch

      Dienstleistungen

    • IT-Beratung
    • Software-Entwicklung
    • Backend-Softwareentwicklung
    • Frontend-Softwareentwicklung
    • Staff Augmentation
    • Backend-Entwickler
    • Cloud-Ingenieure
    • Daten-Ingenieure
    • Andere
    • QS-Ingenieure

      Ressourcen

    • Fakten und Mythen über die Zusammenarbeit mit einem externen Softwareentwicklungspartner
    • Aus den USA nach Europa: Warum entscheiden sich amerikanische Start-ups für eine Verlagerung nach Europa?
    • Tech Offshore Development Hubs im Vergleich: Tech Offshore Europa (Polen), ASEAN (Philippinen), Eurasien (Türkei)
    • Was sind die größten Herausforderungen für CTOs und CIOs?
    • Der Codest
    • Der Codest
    • Der Codest
    • Privacy policy
    • Website terms of use

    Urheberrecht © 2025 von The Codest. Alle Rechte vorbehalten.

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