window.pipedriveLeadboosterConfig = { bas: 'leadbooster-chat.pipedrive.com', företagId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(funktion () { var w = fönster if (w.LeadBooster) { console.warn('LeadBooster finns redan') } annars { w.LeadBooster = { q: [], on: funktion (n, h) { this.q.push({ t: "o", n: n, h: h }) }, trigger: funktion (n) { this.q.push({ t: 't', n: n }) }, } } })() Första hjälpen för brutna JavaScript beroenden - The Codest
Codest
  • Om oss
  • Tjänster
    • Utveckling av programvara
      • Frontend-utveckling
      • Backend-utveckling
    • Staff Augmentation
      • Frontend-utvecklare
      • Backend-utvecklare
      • Dataingenjörer
      • Ingenjörer inom molntjänster
      • QA-ingenjörer
      • Övriga
    • Det rådgivande
      • Revision och rådgivning
  • Industrier
    • Fintech & bankverksamhet
    • E-commerce
    • Adtech
    • Hälsoteknik
    • Tillverkning
    • Logistik
    • Fordon
    • IOT
  • Värde för
    • VD OCH KONCERNCHEF
    • CTO
    • Leveranschef
  • Vårt team
  • Fallstudier
  • Vet hur
    • Blogg
    • Möten
    • Webbinarier
    • Resurser
Karriär Ta kontakt med oss
  • Om oss
  • Tjänster
    • Utveckling av programvara
      • Frontend-utveckling
      • Backend-utveckling
    • Staff Augmentation
      • Frontend-utvecklare
      • Backend-utvecklare
      • Dataingenjörer
      • Ingenjörer inom molntjänster
      • QA-ingenjörer
      • Övriga
    • Det rådgivande
      • Revision och rådgivning
  • Värde för
    • VD OCH KONCERNCHEF
    • CTO
    • Leveranschef
  • Vårt team
  • Fallstudier
  • Vet hur
    • Blogg
    • Möten
    • Webbinarier
    • Resurser
Karriär Ta kontakt med oss
Pil tillbaka GÅ TILLBAKA
2018-12-27
Utveckling av programvara

Första hjälpen för trasiga JavaScript-beroenden

Daniel Grek

Om du är mjukvaruutvecklare vet du förmodligen redan att en av dina många roller definitivt inte är att vara ännu en hjuluppfinnare. Åtminstone inte i de flesta fall.

Jag skulle vilja skriva om JavaScript beroenden. Men låt oss börja från början. Om du är programvaruutvecklare vet du säkert redan att en av dina många roller definitivt inte är att vara ännu en hjuluppfinnare. Åtminstone inte i de flesta fall. Världen har gått så långt att det idag finns paket för nästan allt, vilket gör vår utveckling enklare och mer effektiv.

Detta är naturligtvis inte en uppmuntran till att tappa intresset för andra frågor - varje paket har ett ganska stort utrymme för att förbättras och utvecklas. Ditt affärsmål är dock att ta fram ett komplett Produkt på en tallrik precis i tid eller till och med innan den är uppe. Förpackningar hjälper dig att uppfylla dessa planer och ger npm eller Garn på toppen av dina bästa vänners lista, men var medveten om: alla lösningar, liksom den här, kan också medföra risker. Och vi kommer att försöka beskriva det och visa dig ett bättre sätt att komma undan med det i artikeln nedan.

Låt oss börja med en berättelse...

Föreställ dig en stor JavaScript projekt. Affärskrav tvingar utvecklare att använda ett specifikt paket, vilket möjliggör en korrekt integration med ett annat system hos en kund. Och det är helt okej. MVP har levererats i tid, nästa kontrakt har tecknats och utvecklingen fortsätter. Kunden ber att få integrera nästa del av ett system, vilket kräver en uppdatering av ditt paket.

Denna del går bra, tills testerna avfyras. Det verkar som om paketet innehåller en enkel, men obekväm bugg, som ännu inte har åtgärdats i någon produktversion och det är känt att detta inte kommer att ske tillräckligt snart. Du kan inte bara fixa din nod_moduler katalog - bör det tas bort från ditt arkiv från spårning, därför kommer dina medarbetare aldrig att veta något om dina ändringar! Tja, medan du läste detta har du förmodligen redan förstått vad du ska göra - fork. Men behöver du verkligen en sådan hammare?

Förstå ditt problem

Du måste vara medveten om huruvida det problem du står inför kommer att beröra bara dig eller en större grupp. Ibland tolkar människor avsaknad av viss funktionalitet som en bugg, vilket inte alltid är korrekt. Det är därför, din lösning kanske inte accepteras av en community och inte inkluderas i en officiell repository. Men du behöver det fortfarande här och nu. Nåväl, låt oss lappa ihop det!

Enligt release notes från github repository, patch-package ) släpptes officiellt i maj 2017. It är ett kraftfullt verktyg som gör det möjligt att installera ändringar i beroendeprojektet i din nod_moduler katalog. Vissa kanske säger att detta är ganska galenskap - avfyrningsinstallationskommando din beroendehanterare kommer att skriva över ändringarna.

Detta är korrekt. Men ett patch-paket samexisterar med npm och Garn perfekt (jag måste erkänna att det fungerar något bättre med npm hittills, du kan läsa mer i avsnittet "Varför ska du använda postinstall-prepare med Yarn?" i README-filen) och drar full nytta av en skriptförberedelse ("script": {"prepare":""}) av din paket.json fil. Patch-package skapar bokstavligen en diff-katalog mellan dina ändringar och originalpaketet, som lagras i patch-mappen i ditt faktiska projekt.

När kommandot install har körts och alla beroenden har laddats ner tillämpas skillnaden i projektkatalogen, vilket ger en perfekt rekonstruktion av dina ändringar för alla samarbetspartners. Det gör ditt liv enklare, eller hur? Lösningen har också vissa nackdelar. Patch-paketet kan inte fixa beroenden av ditt paket eller göra några ändringar i paket.json.

I det här fallet kan du använda fork-lösningen. Du måste också överväga antalet ändringar som du är på väg att göra i ditt beroendepaket och om de kommer att växa med tiden. Om så är fallet bör du tänka dig noga för när du använder fork, eftersom det här är ett eget projekt.

Var inte självisk!

Patching är ett bra sätt att fixa dina beroenden utan att skapa oändliga forks och generera flera projektkällor. Men du bör alltid komma ihåg att det inte bara ska vara enkelriktat att dra nytta av communityt. Om du hittar en bugg eller känner att du kan förbättra det paket du använder, bör du alltid överväga att hjälpa andra genom att registrera ett problem eller till och med genom att bidra till projektet!

Relaterade artiklar

Utveckling av programvara

Bygg framtidssäkrade webbappar: Insikter från The Codest:s expertteam

Upptäck hur The Codest utmärker sig genom att skapa skalbara, interaktiva webbapplikationer med banbrytande teknik som ger sömlösa användarupplevelser på alla plattformar. Läs om hur vår expertis driver digital omvandling och affärsutveckling...

DEKODEST
Utveckling av programvara

Topp 10 Lettlandsbaserade mjukvaruutvecklingsföretag

Läs mer om Lettlands främsta mjukvaruutvecklingsföretag och deras innovativa lösningar i vår senaste artikel. Upptäck hur dessa teknikledare kan hjälpa till att lyfta ditt företag.

thecodest
Lösningar för företag och uppskalningsföretag

Java Software Development Essentials: En guide till framgångsrik outsourcing

Utforska denna viktiga guide om framgångsrik outsourcing av Java-programvaruutveckling för att förbättra effektiviteten, få tillgång till expertis och driva projektframgång med The Codest.

thecodest
Utveckling av programvara

Den ultimata guiden till outsourcing i Polen

Den kraftiga ökningen av outsourcing i Polen drivs av ekonomiska, utbildningsmässiga och tekniska framsteg, vilket främjar IT-tillväxt och ett företagsvänligt klimat.

TheCodest
Lösningar för företag och uppskalningsföretag

Den kompletta guiden till verktyg och tekniker för IT-revision

IT-revisioner säkerställer säkra, effektiva och kompatibla system. Läs mer om hur viktiga de är genom att läsa hela artikeln.

Codest
Jakub Jakubowicz CTO och medgrundare

Prenumerera på vår kunskapsbas och håll dig uppdaterad om expertisen från IT-sektorn.

    Om oss

    The Codest - Internationellt mjukvaruutvecklingsföretag med teknikhubbar i Polen.

    Förenade kungariket - Huvudkontor

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

    Polen - Lokala tekniknav

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

      Codest

    • Hem
    • Om oss
    • Tjänster
    • Fallstudier
    • Vet hur
    • Karriär
    • Ordbok

      Tjänster

    • Det rådgivande
    • Utveckling av programvara
    • Backend-utveckling
    • Frontend-utveckling
    • Staff Augmentation
    • Backend-utvecklare
    • Ingenjörer inom molntjänster
    • Dataingenjörer
    • Övriga
    • QA-ingenjörer

      Resurser

    • Fakta och myter om att samarbeta med en extern partner för mjukvaruutveckling
    • Från USA till Europa: Varför väljer amerikanska startup-företag att flytta till Europa?
    • Jämförelse av Tech Offshore Development Hubs: Tech Offshore Europa (Polen), ASEAN (Filippinerna), Eurasien (Turkiet)
    • Vilka är de största utmaningarna för CTO:er och CIO:er?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Användarvillkor för webbplatsen

    Copyright © 2025 av The Codest. Alla rättigheter reserverade.

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