Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • Ota yhteyttä
Finnish
FI Finnish
US English (US)
  • Koti
  • Partnerit

Svelte-storefrontin tenant-haarojen hallinta

Tehokkaat käytännöt Svelte-monihaarojen hallintaan. Korjaa koodi vain kerran ja jaa muutokset kaikille haaroille automaattisesti.

Written by Petro Mäntylä

Updated at August 18th, 2026

Contact Us

If you still have questions or prefer to get help directly from an agent, please submit a request.
We’ll get back to you as soon as possible.

Please fill out the contact form below and we will reply as soon as possible.

  • AI Commerce Cloud
    Hallinnan etusivu Asiakkuudet Tilaukset Tilausten hallinta Kategoriat Tarjoustyökalu Tuotteet Konfiguraatiot Moduulit Paikallisasetukset ja verot Arvostelut Etusivu FAQ -työkalu Kuvagalleria Työkalut Kassa Lisätoiminnot Svelte Raportit
  • Akeneo
  • WordPress
  • Builder.io
  • Algolia
  • Google
  • Meta
  • Tuki
  • Tehden
  • Partnerit
    Miksi valita AI Commerce?
  • Microsoft
  • Integraatiot
  • Enrerprise Solutions
  • Yleiset sopimusehdot
  • Agentic Commerce
+ Lisää

Sisällysluettelo

Johdanto Keskeinen toimintaperiaate Uusien komponenttiversioiden luominen Nimeämiskäytännön säännöt CSS-muutosten hallinta Suositeltu eteneminen kehittäjille Yhteenveto

Main-haara omistaa yhteisen storefront-käyttäytymisen

AI Commerce Svelte -storefrontin main-haara omistaa jaetun käyttäytymisen, rakenteen ja peruskomponentit. Jokaisella tuotantokaupalla on oma tenant-haara, jossa säilytetään vain todistettu kauppakohtainen esitystapa, konfiguraatio tai aidosti tenantille kuuluva komponentti. Tenant valitaan Git-haaralla, ei ympäristötiedostolla, joka yrittäisi jäljitellä toista kauppaa.

Yhteinen korjaus tehdään main-haaraan kerran ja levitetään tenant-haaroihin hallitulla merge-ajolla vain Petron pyynnöstä. Tämä vähentää päällekkäistä työtä, mutta päivitys ei ole konfliktiton eikä automaattisesti valmis tuotantoon. Jokaisen tenant-haaran merge, tarkistus, push ja deploy ovat erillisiä vaiheita, ja tenantkohtainen toiminta pitää säilyttää konfliktinratkaisussa.

Svelten ja Viten tree shaking voi jättää käyttämättömän koodin pois tuotantobundlesta. Se ei ole peruste kerätä main-haaraan tulevaisuuden varalle reservikomponentteja. Repossa on lisäksi käyttämättömien Svelte-tiedostojen siivoustyökalu, joten uusi yhteinen komponentti tehdään vasta, kun todellinen nykyinen kuluttaja tai hyväksytty yhteinen tarve on osoitettu.

Valmistele main-haaran levitys tenant-haaroihin

Main-haaran levitys aloitetaan puhtaasta main-työpuusta. Tarkista aktiivinen haara ja git status; committoi omat muutokset ja selvitä kaikki vieraat keskeneräiset muutokset ennen haaraskriptejä. deploy/merge.sh pysähtyy heti, jos työpuu ei ole puhdas, koska skripti vaihtaa haaroja ja voi luoda merge-committeja.

Jaa vain yksi koherentti yhteinen muutos kerrallaan. Älä yhdistä tenant-mergeen komponenttien nimeämistä, siivousta, riippuvuuspäivityksiä tai tiedostojen poistoja, jotka eivät kuulu samaan korjaukseen. Jos tenantilla on oma riippuvuusversio, säilytä se ja generoi kyseisen haaran package-lock.json tarvittaessa npm install -komennolla.

Oletusajo on ./deploy/merge.sh -r, mutta se suoritetaan vain Petron nimenomaisesta pyynnöstä. Skripti hakee originin, päivittää paikallisen main-haaran fast-forwardilla ja käsittelee originin tenant-haarat. Kehitys-, ominaisuus-, Codex-, Claude-, Dependabot-, *-dev- ja *-wp-haarat rajataan tästä tuotantotenanttien kierroksesta pois.

Yhdistä main tenant-haaraan turvallisesti

Tenant-haaran yhdistämisessä tenant on nykyinen haara ja main on saapuva muutos. deploy/merge.sh päivittää ensin tenantin originista fast-forwardilla ja tekee sitten main-mergen. Jos yhdistäminen onnistuu ja indeksi sisältää muutoksia, skripti luo commitin viestillä chore: auto-merge main into <tenant>.

-r eli --resolve ratkaisee automaattisesti vain delete/modify-ristiriitoja. Jos tenant on tarkoituksella poistanut main-haarassa muuttuneen tiedoston, poisto voidaan säilyttää. Jos tenant on muuttanut tiedostoa, jonka main on poistanut, tenantin versio voidaan säilyttää. Kahden muokatun version ristiriita jää aina kehittäjän ratkaistavaksi, eikä skripti saa vaihtaa tenantin importteja tai komponentteja oikopolkuna.

Jos ratkaisemattomia tiedostoja jää, skripti pysähtyy kyseiseen tenant-haaraan. Korjaa vain kyseisen yhteisen muutoksen aiheuttama ristiriita, säilytä tenantin aiempi käyttäytyminen ja varmista importin sekä tiedoston muodostama pari. Jatka keskeytyksen jälkeen komennolla ./deploy/merge.sh -f <haara> tai oletusratkaisulla ./deploy/merge.sh -r -f <haara> sovitun prosessin mukaan.

Säilytä tenantin komponentit ja tarkoitukselliset poistot

Tenant-haara voi jättää pois komponentin, jota kyseinen kauppa ei käytä. Esimerkiksi kauppa voi käyttää vain ProductConsumerPrices.svelte-komponenttia ja poistaa ProductBusinessPrices.svelte-vaihtoehdon. Tällainen poistaminen on turvallista vain, jos kaikki importit, testit ja ajonaikaiset polut osoittavat, ettei poistettua komponenttia tarvita tenantissa.

Main-mergen automaattinen delete/modify-ratkaisu saa säilyttää tällaisen tarkoituksellisen tenant-poiston. Se ei saa päätellä uutta poistoa, palauttaa vanhaa ajonaikaista koodia testin vuoksi tai vaihtaa tenantin valitsemaa komponenttia toiseen. Jos main lisää uuden importin tiedostoon, jonka tenant on poistanut, ristiriita ratkaistaan käyttäytymisen perusteella eikä vain ottamalla kokonaan jompikumpi versio.

Yhdistämisen jälkeen tarkista erityisesti tenantin header, valikko, navigaatio ja komponentti-importit. Komennon onnistuminen todistaa vain Git-tilan, ei käyttöliittymän oikeellisuutta. Tenantkohtainen puuttuva komponentti tai testi korjataan kyseisessä tenant-haarassa; yhteistä tarkistusskriptiä ei heikennetä haarapoikkeaman peittämiseksi.

Päätä, muokataanko komponenttia vai luodaanko uusi

Svelte-komponentin pieni JavaScript- tai CSS-muutos tehdään ensisijaisesti olemassa olevaan komponenttiin. Jaettu rakenne ja käyttäytyminen kuuluvat main-haaraan, kun taas tenantin pienin todistettu ulkoasupoikkeama jää tenant-haaraan. Ennen uuden tiedoston luomista tarkista main ja relevantit tenant-haarat ja sovita lähin toimiva toteutus.

Uusi komponenttinimi voi olla perusteltu, jos rakenne ja käyttäytyminen eroavat aidosti niin paljon, että saman tiedoston ehdollistaminen aiheuttaisi jatkuvaa konfliktia, tai jos uusi yhteinen malli tarjoaa laajasti käytettävän mutta vanhan logiikan kanssa yhteensopimattoman ratkaisun. Pelkkä yhden tenantin ulkoasuero ei riitä jaetun rinnakkaiskomponentin perusteeksi.

Esimerkiksi Footer.svelte ja grid-rakennetta käyttävä FooterGrid.svelte voivat olla eri komponentteja vain, jos rakenteellinen ero ja vähintään nykyinen kuluttaja ovat todellisia. Jos ero on pelkkä väri, välistys tai muu esitysarvo, käytä yhteistä konfiguraatiota tai tenantin CSS:ää. Näin main säilyy yhtenäisenä eikä rinnakkaisversioista synny varjettua komponenttikirjastoa.

Nimeä uusi komponenttiversio kuvaavasti

Uuden Svelte-komponentin nimi säilyttää tunnistettavan yhteyden alkuperäiseen tehtävään ja kertoo olennaisen eron. Hyviä mallinimiä ovat HeaderTransparent ja FooterGrid, jos läpinäkyvä header tai grid-pohjainen footer ovat todella omia rakenteellisia mallejaan. Nimi auttaa löytämään läheiset toteutukset samasta tiedostoryhmästä.

Pelkkä numerointi, kuten Footer2.svelte, ei ole sallittu, koska se ei kerro omistajuutta, rakennetta eikä valintaperustetta. Älä myöskään nimeä komponenttia tenantin mukaan, jos mekanismi on jaettava. Aidosti tenantkohtainen komponentti voi jäädä tenant-haaraan ilman, että se nostetaan yhteiseksi vain nimen yhdenmukaistamiseksi.

AI Commercen ydinkehitystiimi katselmoi main-haaraan ehdotetun uuden komponentin ja sen nimeämisen. Katselmoinnissa osoitetaan nykyinen kuluttaja, ero lähimpään komponenttiin, omistava haara ja poistumis- tai yhdistämispolku. Uusi tiedosto ei ole oletusratkaisu mahdollisten merge-konfliktien välttämiseen.

Tee CSS-muutos pienellä diffillä

Tenantin CSS-muutos tehdään mahdollisimman pienellä diffillä ja yhteisen komponentin rakenteen säilyttäen. Jos olemassa oleva padding: 20px pitää poistaa visuaalisesti, historiallinen konfliktienhallintaohje suositteli arvon muuttamista muotoon padding: 0px rivin poistamisen sijasta. Tämä voi tehdä tenantin tarkoituksen näkyväksi myöhemmässä main-mergessä.

Sääntöä ei kuitenkaan sovelleta mekaanisesti kaikkeen CSS:ään. Tarpeeton deklarointi voidaan poistaa, jos poistaminen on pienin ja selkein ratkaisu eikä tenant tarvitse eksplisiittistä nollausta yhteisen tyylin kumoamiseen. Kun tenant laajentaa jaettua komponenttia, tenant-säännöt lisätään tyylilohkon loppuun, jotta lohkon alku pysyy käytettävissä main-päivityksille.

Käytä jaettuja brändi- ja design-token-arvoja komponenttikohtaisten kovakoodausten sijasta. Tarkista CSS-muutoksen vaikutus työpöytä-, tabletti- ja mobiilileveyksillä sekä komponentin vuorovaikutustiloissa. Rivin säilyttäminen voi vähentää tekstuaalista konfliktia, mutta vain renderöinti kertoo, säilyikö tenantin ulkoasu.

Tarkista, pushaa ja julkaise tenant-haarat järjestyksessä

Tenant-haarojen koko julkaisukierros alkaa puhtaasta main-haarasta ja etenee järjestyksessä ./deploy/merge.sh -r, ./deploy/check.sh, ./deploy/push.sh ja ./deploy/deploy.sh. Merge levittää yhteisen muutoksen, check ajaa tiukan tenant-kierroksen, push julkaisee haarat originiin ja deploy tekee julkaisumerkinnät tuotantohaaroihin.

Jos tarkistuskierros keskeytyy tenanttiin, jatka dokumentoidulla -f <haara>-valinnalla korjauksen jälkeen. Älä ohita epäonnistunutta tenanttia tai käytä paikallista nopeutusta CI-vaatimusten heikentämiseen. Tarkista merge-automaation jälkeen header, valikko, navigaatio ja komponentti-importit sekä muutoksen oma toiminnallinen pinta.

Myöhemmät deploy-marker-commitit eivät kuulu ennen niitä ajettujen tarkistusten todistusalaan. Varmista siis julkaisun lopullinen commit ja tuotantotila erikseen. Prosessin tavoite on yksi yhteinen korjaus, pienet tenant-poikkeamat, käsitellyt konfliktit ja toistettava julkaisu — ei lupaus siitä, että main siirtyisi automaattisesti kaikkiin kauppoihin ilman ihmisen hyväksyntää.

hallita haarat frontend-haarat svelte-komponentit versiohallinta automaatio (bash-skripti) ketterä ohjelmistokehitys komponentin nimeäminen konfliktien ratkaisu ai commerce

Oliko artikkeli hyödyllinen?

Kyllä
Ei
Anna palautetta tästä artikkelista

Yhteenkuuluvat artikkelit

  • AI Commerce GraphQL -käyttöohje partnereille
  • Mikä on AI Commerce ja mikä on visiomme?
  • Sonet CGI Premium -integraation toimintamalli
  • AI Commerce -kehitysympäristö partnereille
  • Verkkokaupan siirtyminen kehitysympäristöstä tuotantoon
AI Commerce Logo

Future-proof eCommerce, built in the EU

AI Commerce Cloud is developed and hosted within the EU, fully compliant with GDPR and all relevant regulations.

Solutions

Service packages Features Integrations Customers

About us

About us Support Vision Contact us

Development

Changelog Blog Implementation Partners System status
AI Commerce Cloud FI0818073-0
Ranta-Tampellan Katu 17, 33180 Tampere, Finland
info@aicommerce.fi
Privacy Policy Licensing Rights Terms of Use
© 2025 AI Commerce Cloud. All rights reserved.
Expand