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 już istnieje') } 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 }) }, } } })() Pierwsza pomoc dla uszkodzonych zależności JavaScript - The Codest
The Codest
  • O nas
  • Nasze Usługi
    • Software Development
      • Frontend Development
      • Backend Development
    • Zespoły IT
      • Programiści frontendowi
      • Backend Dev
      • Inżynierowie danych
      • Inżynierowie rozwiązań chmurowych
      • Inżynierowie QA
      • Inne
    • Konsultacje IT
      • Audyt i doradztwo
  • Branże
    • Fintech i bankowość
    • E-commerce
    • Adtech
    • Healthtech
    • Produkcja
    • Logistyka
    • Motoryzacja
    • IOT
  • Wartość dla
    • CEO
    • CTO
    • Delivery Managera
  • Nasz zespół
  • Case Studies
  • Nasze Know How
    • Blog
    • Meetups
    • Webinary
    • Raporty
Kariera Skontaktuj się z nami
  • O nas
  • Nasze Usługi
    • Software Development
      • Frontend Development
      • Backend Development
    • Zespoły IT
      • Programiści frontendowi
      • Backend Dev
      • Inżynierowie danych
      • Inżynierowie rozwiązań chmurowych
      • Inżynierowie QA
      • Inne
    • Konsultacje IT
      • Audyt i doradztwo
  • Wartość dla
    • CEO
    • CTO
    • Delivery Managera
  • Nasz zespół
  • Case Studies
  • Nasze Know How
    • Blog
    • Meetups
    • Webinary
    • Raporty
Kariera Skontaktuj się z nami
Strzałka w tył WSTECZ
2018-12-27
Software Development

Pierwsza pomoc dla uszkodzonych zależności JavaScript

Daniel Grek

Jeśli jesteś programistą, to prawdopodobnie już wiesz, że jedną z wielu twoich ról zdecydowanie nie jest bycie kolejnym wynalazcą koła. Przynajmniej nie w większości przypadków.

Chciałbym napisać o JavaScript zależności. Zacznijmy jednak od początku. Jeśli jesteś programistą, to prawdopodobnie już wiesz, że jedną z wielu twoich ról zdecydowanie nie jest bycie kolejnym wynalazcą koła. Przynajmniej nie w większości przypadków. Świat poszedł na tyle do przodu, że dziś istnieją pakiety do prawie wszystkiego, dzięki czemu nasz rozwój jest łatwiejszy i bardziej wydajny.

Nie jest to oczywiście zachęta do utraty zainteresowania innymi kwestiami - każdy pakiet ma całkiem sporą przestrzeń do poprawy i ewolucji. Jednak celem biznesowym jest dostarczenie kompletnego produkt na talerzu na czas lub nawet przed jego upływem. Pakiety pomogą ci zrealizować te plany, przynosząc npm lub przędza na szczycie listy najlepszych przyjaciół, ale bądź świadomy: każde rozwiązanie, tak jak i to, może również nieść ze sobą ryzyko. A my postaramy się je opisać i pokazać lepszy sposób na uniknięcie go w poniższym artykule.

Zacznijmy od historii...

Wyobraźmy sobie duży JavaScript projekt. Wymagania biznesowe zobowiązują programistów do korzystania z określonego pakietu, umożliwiającego odpowiednią integrację z innym systemem klienta. I to jest całkowicie w porządku. MVP została dostarczona na czas, podpisano kolejną umowę i rozwój jest kontynuowany. Klient prosi o integrację kolejnej części systemu, która wymaga aktualizacji pakietu.

Ta część idzie dobrze, dopóki nie zostaną uruchomione testy. Wygląda na to, że pakiet zawiera prosty, ale niewygodny błąd, który nie został jeszcze naprawiony w żadnym wydaniu produktu i wiadomo, że nie nastąpi to wystarczająco szybko. Nie można po prostu naprawić node_modules katalog - powinien zostać usunięty z repozytorium ze śledzenia, dzięki czemu Twoi współpracownicy nigdy nie dowiedzą się o Twoich zmianach! Cóż, kiedy to czytałeś, prawdopodobnie już zrozumiałeś, co należy zrobić - rozwidlić. Ale czy naprawdę potrzebujesz takiego młotka?

Zrozumienie problemu

Musisz być świadomy, czy problem, z którym się borykasz, będzie dotyczył tylko Ciebie, czy większej społeczności. Czasami ludzie interpretują brak pewnej funkcjonalności jako błąd, co nie zawsze jest poprawne. Dlatego, Twoje rozwiązanie może nie zostać zaakceptowane przez społeczność i nie zostać włączone do oficjalnego repozytorium.. Jednak nadal potrzebujesz go tu i teraz. Cóż, załatajmy to!

Zgodnie z informacjami o wydaniu repozytorium github, patch-package ) została oficjalnie wydana w maju 2017 roku. It jest potężnym narzędziem, które pozwala na modyfikacje wewnątrz projektu zależności, aby być zainstalowanym w twoim node_modules katalog. Niektórzy mogą powiedzieć, że to szaleństwo - odpalenie polecenia install w menedżerze zależności spowoduje nadpisanie zmian.

Cóż, to prawda. Jednak pakiet poprawek współistnieje z npm i przędza doskonale (muszę przyznać, że jak dotąd działa nieco lepiej z npm, możesz przeczytać więcej w sekcji "Dlaczego powinieneś używać postinstall-prepare z Yarn?" w pliku README) i w pełni wykorzystuje przygotowanie skryptu ("script": { "prepare":""}) twojego package.json plik. Patch-package dosłownie tworzy katalog różnic między wprowadzonymi zmianami a oryginalnym pakietem, przechowywany w folderze poprawek rzeczywistego projektu.

Po uruchomieniu polecenia install i pobraniu wszystkich zależności, stosuje tę różnicę do katalogu projektu, tworząc idealną rekonstrukcję zmian dla wszystkich współpracowników. Ułatwia to życie, prawda? Rozwiązanie to ma również pewne wady. Patch-package nie może naprawić zależności twojego pakietu ani wprowadzić żadnych zmian w package.json.

W takim przypadku można użyć rozwiązania fork. Musisz również wziąć pod uwagę liczbę zmian, które zamierzasz zastosować w swoim pakiecie zależności i czy będą one rosły w czasie. W przypadku, gdy tak się stanie - powinieneś dokładnie przemyśleć użycie forka, ponieważ jest to twój własny projekt.

Nie bądź samolubny!

Patchowanie to świetny sposób na naprawienie zależności bez tworzenia niekończących się forków i generowania wielu źródeł projektu. Należy jednak zawsze pamiętać, że korzystanie ze społeczności nie powinno być jednokierunkowe. Jeśli znajdziesz błąd lub czujesz, że możesz ulepszyć pakiet, którego używasz, zawsze powinieneś rozważyć pomoc innym, rejestrując problem lub nawet wnosząc swój wkład w projekt!

Powiązane artykuły

Software Development

Tworzenie przyszłościowych aplikacji internetowych: spostrzeżenia zespołu ekspertów The Codest

Odkryj, w jaki sposób The Codest wyróżnia się w tworzeniu skalowalnych, interaktywnych aplikacji internetowych przy użyciu najnowocześniejszych technologii, zapewniając płynne doświadczenia użytkowników na wszystkich platformach. Dowiedz się, w jaki sposób nasza wiedza napędza transformację cyfrową i biznes...

THEECODEST
Software Development

10 najlepszych firm tworzących oprogramowanie na Łotwie

Dowiedz się więcej o najlepszych łotewskich firmach programistycznych i ich innowacyjnych rozwiązaniach w naszym najnowszym artykule. Odkryj, w jaki sposób ci liderzy technologiczni mogą pomóc w rozwoju Twojej firmy.

thecodest
Rozwiązania dla przedsiębiorstw i scaleupów

Podstawy tworzenia oprogramowania Java: Przewodnik po skutecznym outsourcingu

Zapoznaj się z tym niezbędnym przewodnikiem na temat skutecznego tworzenia oprogramowania Java outsourcing, aby zwiększyć wydajność, uzyskać dostęp do wiedzy specjalistycznej i osiągnąć sukces projektu z The Codest.

thecodest
Software Development

Kompletny przewodnik po outsourcingu w Polsce

Wzrost liczby outsourcing w Polsce jest napędzany przez postęp gospodarczy, edukacyjny i technologiczny, sprzyjający rozwojowi IT i przyjazny klimat dla biznesu.

TheCodest
Rozwiązania dla przedsiębiorstw i scaleupów

Kompletny przewodnik po narzędziach i technikach audytu IT

Audyty IT zapewniają bezpieczne, wydajne i zgodne z przepisami systemy. Dowiedz się więcej o ich znaczeniu, czytając cały artykuł.

The Codest
Jakub Jakubowicz CTO & Współzałożyciel

Subskrybuj naszą bazę wiedzy i bądź na bieżąco!

    O nas

    The Codest - Międzynarodowa firma programistyczna z centrami technologicznymi w Polsce.

    Wielka Brytania - siedziba główna

    • Office 303B, 182-184 High Street North E6 2JA
      Londyn, Anglia

    Polska - lokalne centra technologiczne

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

      The Codest

    • Strona główna
    • O nas
    • Nasze Usługi
    • Case Studies
    • Nasze Know How
    • Kariera
    • Słownik

      Nasze Usługi

    • Konsultacje IT
    • Software Development
    • Backend Development
    • Frontend Development
    • Zespoły IT
    • Backend Dev
    • Inżynierowie rozwiązań chmurowych
    • Inżynierowie danych
    • Inne
    • Inżynierowie QA

      Raporty

    • Fakty i mity na temat współpracy z zewnętrznym partnerem programistycznym
    • Z USA do Europy: Dlaczego amerykańskie startupy decydują się na relokację do Europy?
    • Porównanie centrów rozwoju Tech Offshore: Tech Offshore Europa (Polska), ASEAN (Filipiny), Eurazja (Turcja)
    • Jakie są największe wyzwania CTO i CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Warunki korzystania z witryny

    Copyright © 2025 by The Codest. Wszelkie prawa zastrzeżone.

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