window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(funktion () { var w = vindue if (w.LeadBooster) { console.warn('LeadBooster findes allerede') } 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 }) }, } } })() Førstehjælp til ødelagte JavaScript-afhængigheder - The Codest
Codest
  • Om os
  • Serviceydelser
    • Udvikling af software
      • Frontend-udvikling
      • Backend-udvikling
    • Staff Augmentation
      • Frontend-udviklere
      • Backend-udviklere
      • Dataingeniører
      • Cloud-ingeniører
      • QA-ingeniører
      • Andet
    • Det rådgivende
      • Revision og rådgivning
  • Industrier
    • Fintech og bankvirksomhed
    • E-commerce
    • Adtech
    • Sundhedsteknologi
    • Produktion
    • Logistik
    • Biler
    • IOT
  • Værdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leder af levering
  • Vores team
  • Casestudier
  • Ved hvordan
    • Blog
    • Møder
    • Webinarer
    • Ressourcer
Karriere Tag kontakt til os
  • Om os
  • Serviceydelser
    • Udvikling af software
      • Frontend-udvikling
      • Backend-udvikling
    • Staff Augmentation
      • Frontend-udviklere
      • Backend-udviklere
      • Dataingeniører
      • Cloud-ingeniører
      • QA-ingeniører
      • Andet
    • Det rådgivende
      • Revision og rådgivning
  • Værdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leder af levering
  • Vores team
  • Casestudier
  • Ved hvordan
    • Blog
    • Møder
    • Webinarer
    • Ressourcer
Karriere Tag kontakt til os
Pil tilbage GÅ TILBAGE
2018-12-27
Udvikling af software

Førstehjælp til ødelagte JavaScript-afhængigheder

Daniel Grek

Hvis du er softwareudvikler, så ved du sikkert allerede, at en af dine mange roller bestemt ikke er at være endnu en hjulopfinder. I hvert fald ikke i de fleste tilfælde.

Jeg vil gerne skrive om JavaScript afhængigheder. Men lad os starte fra begyndelsen. Hvis du er softwareudvikler, så ved du sikkert allerede, at en af dine mange roller bestemt ikke er at være endnu en hjulopfinder. I hvert fald ikke i de fleste tilfælde. Verden er kommet så langt, at der i dag findes pakker til næsten alt, som gør vores udvikling nemmere og mere effektiv.

Det er selvfølgelig ikke en opfordring til at miste interessen for andre emner - hver pakke har et ret stort rum til at forbedre og udvikle sig. Men dit forretningsmæssige mål er at bringe en komplet produkt på en tallerken lige til tiden eller endda før den er oppe. Pakker hjælper dig med at opfylde disse planer og bringer npm eller Garn på toppen af dine bedste venners liste, men vær opmærksom på, at enhver løsning, også denne, også kan indebære en risiko. Og vi vil forsøge at beskrive det og vise dig en bedre måde at slippe af sted med det på i artiklen nedenfor.

Lad os begynde med en historie...

Forestil dig en stor JavaScript projekt. Forretningskrav forpligter udviklere til at bruge en bestemt pakke, der giver mulighed for en ordentlig integration med et andet system hos en kunde. Og det er helt i orden. MVP er blevet leveret til tiden, den næste kontrakt er blevet underskrevet, og udviklingen fortsætter. Kunden beder om at få integreret den næste del af et system, som kræver en opdatering af din pakke.

Denne del går godt, indtil testene går i gang. Det ser ud til, at pakken indeholder en simpel, men ubelejlig fejl, som endnu ikke er blevet rettet i nogen produktudgivelse, og man ved, at det ikke vil ske hurtigt nok. Du kan ikke bare fikse din node_moduler Katalog - skal den fjernes fra dit repository, så dine samarbejdspartnere aldrig får noget at vide om dine ændringer! Mens du læste dette, har du sikkert allerede forstået, hvad du skal gøre - fork. Men har du virkelig brug for sådan en hammer?

Forstå dit problem

Du skal være opmærksom på, om det problem, du står over for, kun involverer dig eller et større fællesskab. Nogle gange fortolker folk manglende funktionalitet som en fejl, hvilket ikke altid er korrekt. Det er derfor, din løsning bliver måske ikke accepteret af et fællesskab og ikke inkluderet i et officielt repository. Men du har stadig brug for den her og nu. Så lad os lappe den!

Ifølge udgivelsesnoterne fra github-arkivet er patch-pakken ) blev officielt udgivet i maj 2017. It er et stærkt værktøj, der gør det muligt at installere ændringer i afhængighedsprojektet i din node_moduler Katalog. Nogle vil måske sige, at det er helt vanvittigt - når du affyrer installationskommandoen, vil din afhængighedsmanager overskrive ændringerne.

Ja, det er korrekt. Men en patch-pakke eksisterer side om side med npm og Garn perfekt (jeg må indrømme, at det fungerer lidt bedre med npm indtil videre, du kan læse mere i afsnittet "Hvorfor skal du bruge postinstall-prepare med Yarn?" i README-filen) og drager fuld fordel af en scriptforberedelse ("script": {"prepare":""}) af din pakke.json fil. Patch-package opretter bogstaveligt talt en differensmappe mellem dine ændringer og den oprindelige pakke, som gemmes i patch-mappen i dit egentlige projekt.

Når du har kørt kommandoen install og downloadet alle afhængigheder, anvender den forskellen i projektmappen og laver en perfekt rekonstruktion af dine ændringer for alle samarbejdspartnere. Det gør dit liv enklere, ikke sandt? Løsningen har også nogle ulemper. Patch-pakken kan ikke rette afhængigheder af din pakke eller foretage ændringer i pakke.json.

I dette tilfælde kan du bruge fork-løsningen. Du skal også overveje, hvor mange ændringer du er ved at lægge ind i din afhængighedspakke, og om de vil vokse med tiden. Hvis det er tilfældet, skal du tænke dig godt om, når du bruger fork, da det er dit eget projekt.

Lad være med at være egoistisk!

Patching er en god måde at rette dine afhængigheder på uden at skabe endeløse forks og generere flere projektkilder. Men du skal altid huske, at det ikke kun bør gå én vej, når du udnytter fællesskabet. Hvis du finder en fejl eller føler, at du kan forbedre den pakke, du bruger, bør du altid overveje at hjælpe andre ved at registrere et problem eller endda ved at bidrage til projektet!

Relaterede artikler

Udvikling af software

Byg fremtidssikrede webapps: Indsigt fra The Codest's ekspertteam

Oplev, hvordan The Codest udmærker sig ved at skabe skalerbare, interaktive webapplikationer med banebrydende teknologier, der leverer sømløse brugeroplevelser på tværs af alle platforme. Lær, hvordan vores ekspertise driver digital transformation og...

DENKODEST
Udvikling af software

Top 10 Letlands-baserede softwareudviklingsvirksomheder

Læs om Letlands bedste softwareudviklingsvirksomheder og deres innovative løsninger i vores seneste artikel. Find ud af, hvordan disse teknologiledere kan hjælpe med at løfte din virksomhed.

thecodest
Løsninger til virksomheder og scaleups

Grundlæggende om Java-softwareudvikling: En guide til succesfuld outsourcing

Udforsk denne vigtige guide til vellykket outsourcing af Java-softwareudvikling for at forbedre effektiviteten, få adgang til ekspertise og skabe projektsucces med The Codest.

thecodest
Udvikling af software

Den ultimative guide til outsourcing i Polen

Den voldsomme stigning i outsourcing i Polen er drevet af økonomiske, uddannelsesmæssige og teknologiske fremskridt, der fremmer it-vækst og et erhvervsvenligt klima.

TheCodest
Løsninger til virksomheder og scaleups

Den komplette guide til IT-revisionsværktøjer og -teknikker

IT-revisioner sikrer sikre, effektive og kompatible systemer. Lær mere om deres betydning ved at læse hele artiklen.

Codest
Jakub Jakubowicz CTO og medstifter

Tilmeld dig vores vidensbase, og hold dig opdateret om ekspertisen fra it-sektoren.

    Om os

    The Codest - International softwareudviklingsvirksomhed med tech-hubs i Polen.

    Storbritannien - Hovedkvarter

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

    Polen - Lokale teknologiske knudepunkter

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

      Codest

    • Hjem
    • Om os
    • Serviceydelser
    • Casestudier
    • Ved hvordan
    • Karriere
    • Ordbog

      Serviceydelser

    • Det rådgivende
    • Udvikling af software
    • Backend-udvikling
    • Frontend-udvikling
    • Staff Augmentation
    • Backend-udviklere
    • Cloud-ingeniører
    • Dataingeniører
    • Andet
    • QA-ingeniører

      Ressourcer

    • Fakta og myter om at samarbejde med en ekstern softwareudviklingspartner
    • Fra USA til Europa: Hvorfor beslutter amerikanske startups sig for at flytte til Europa?
    • Sammenligning af Tech Offshore-udviklingsknudepunkter: Tech Offshore Europa (Polen), ASEAN (Filippinerne), Eurasien (Tyrkiet)
    • Hvad er de største udfordringer for CTO'er og CIO'er?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Vilkår for brug af hjemmesiden

    Copyright © 2025 af The Codest. Alle rettigheder forbeholdes.

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