| name | bump-shared-dependencies |
| description | Bump React, React-DOM og Scheduler til ny versjon — hent fra esm.sh, skriv om import-stier til Nav CDN |
Bump shared dependencies
Denne skillen hjelper deg bumpe React, React-DOM og Scheduler til ny versjon i CDN-repoet.
Hva du trenger fra utvikleren
Når utvikleren ber om å sjekke eller bumpe React og/eller React-DOM, sjekk alltid alle tre pakker (react, react-dom, scheduler) — de henger sammen.
Still disse spørsmålene før du starter:
- React-versjon (påkrevd) — f.eks.
19.2.6. Hvis utvikleren ikke vet, kjør Steg 1 for å finne siste versjon.
- Scheduler-versjon (valgfri) — f.eks.
0.28.0. Hvis ikke oppgitt, kjør Steg 1 for å sjekke om ny versjon finnes.
React og React-DOM bruker alltid samme versjon.
Steg 1 — Finn siste versjon fra esm.sh
Sjekk alltid alle tre pakker:
curl --noproxy '*' -s "https://esm.sh/react" | head -1
curl --noproxy '*' -s "https://esm.sh/react-dom" | head -1
curl --noproxy '*' -s "https://esm.sh/scheduler" | head -1
Parse versjonen fra kommentaren. Sammenlign med nåværende versjoner i repoet (se AGENTS.md eller sjekk siste mappe):
ls packages/react/ | sort -V | tail -1
ls packages/scheduler/ | sort -V | tail -1
Hvis esm.sh-versjonen er nyere enn det som finnes i repoet, fortsett med bumpen. Hvis ikke, informer utvikleren om at repoet allerede er oppdatert.
Steg 2 — Opprett versjonsmapper
mkdir -p packages/react/{REACT_VERSJON}
mkdir -p packages/react-dom/{REACT_VERSJON}
mkdir -p packages/scheduler/{SCHEDULER_VERSJON}
Hopp over scheduler-mappen hvis versjonen allerede finnes.
Steg 3 — Hent bundler fra esm.sh (to-trinns prosess)
esm.sh returnerer først en barrel-fil som viser stien til den faktiske bundelen. Du må hente den faktiske filen.
3.1 — Finn faktiske stier
curl --noproxy '*' -s "https://esm.sh/react@{REACT_VERSJON}"
Output:
export * from "/react@19.2.6/es2022/react.mjs";
export { default } from "/react@19.2.6/es2022/react.mjs";
Stien du trenger er det som står i from "..." — legg den etter https://esm.sh.
Gjør det samme for alle pakker:
curl --noproxy '*' -s "https://esm.sh/react@{REACT_VERSJON}"
curl --noproxy '*' -s "https://esm.sh/react@{REACT_VERSJON}/jsx-runtime"
curl --noproxy '*' -s "https://esm.sh/react-dom@{REACT_VERSJON}"
curl --noproxy '*' -s "https://esm.sh/react-dom@{REACT_VERSJON}/client"
curl --noproxy '*' -s "https://esm.sh/scheduler@{SCHEDULER_VERSJON}"
3.2 — Hent de faktiske bundlene
Bruk stiene fra 3.1 til å hente det faktiske innholdet:
curl --noproxy '*' -s "https://esm.sh/react@{REACT_VERSJON}/es2022/react.mjs" -o packages/react/{REACT_VERSJON}/react.mjs
curl --noproxy '*' -s "https://esm.sh/react@{REACT_VERSJON}/es2022/jsx-runtime.mjs" -o packages/react/{REACT_VERSJON}/jsx-runtime.mjs
curl --noproxy '*' -s "https://esm.sh/react-dom@{REACT_VERSJON}/es2022/react-dom.mjs" -o packages/react-dom/{REACT_VERSJON}/react-dom.mjs
curl --noproxy '*' -s "https://esm.sh/react-dom@{REACT_VERSJON}/es2022/client.mjs" -o packages/react-dom/{REACT_VERSJON}/client.mjs
curl --noproxy '*' -s "https://esm.sh/scheduler@{SCHEDULER_VERSJON}/es2022/scheduler.mjs" -o packages/scheduler/{SCHEDULER_VERSJON}/scheduler.mjs
Merk: Stien (f.eks. es2022) kan variere mellom versjoner. Sjekk alltid barrel-filen i steg 3.1 for korrekt sti.
Steg 4 — Skriv om import-stier i react-dom.mjs
Åpne packages/react-dom/{REACT_VERSJON}/react-dom.mjs.
Finn den første import-linjen (starter med import * as __0$). Erstatt den med:
import * as __0$ from "https://cdn.nav.no/okonomi/sokos-shared-dependencies/packages/react/{REACT_VERSJON}/react.mjs";
Resten av filen forblir uendret.
Steg 5 — Skriv om import-stier i client.mjs
Åpne packages/react-dom/{REACT_VERSJON}/client.mjs.
Finn de tre første import-linjene (starter med import * as __0$, __1$, __2$). Erstatt dem med:
import * as __0$ from "https://cdn.nav.no/okonomi/sokos-shared-dependencies/packages/scheduler/{SCHEDULER_VERSJON}/scheduler.mjs";
import * as __1$ from "https://cdn.nav.no/okonomi/sokos-shared-dependencies/packages/react/{REACT_VERSJON}/react.mjs";
import * as __2$ from "https://cdn.nav.no/okonomi/sokos-shared-dependencies/packages/react-dom/{REACT_VERSJON}/react-dom.mjs";
Resten av filen forblir uendret.
Steg 6 — Verifiser
Sjekk at:
- ✅
react-dom.mjs sin import peker på react/{REACT_VERSJON}/react.mjs
- ✅
client.mjs sine imports peker på:
react-dom/{REACT_VERSJON}/react-dom.mjs
react/{REACT_VERSJON}/react.mjs
scheduler/{SCHEDULER_VERSJON}/scheduler.mjs
- ✅ Alle filer starter med
/* esm.sh - {pakke}@{versjon} */
- ✅ Alle fem filer finnes:
react.mjs, jsx-runtime.mjs, react-dom.mjs, client.mjs, scheduler.mjs
Steg 7 — Oppdater AGENTS.md
Oppdater tabellen «Nåværende versjoner» i AGENTS.md:
| Pakke | Versjon |
|-------|---------|
| react | {REACT_VERSJON} |
| react-dom | {REACT_VERSJON} |
| scheduler | {SCHEDULER_VERSJON} |
Eksempel: Slik utleder du versjoner dynamisk
Ikke hardkod versjoner. Bruk alltid steg 1 til å finne gjeldende og nyeste versjon:
CURRENT=$(ls packages/react/ | sort -V | tail -1)
LATEST=$(curl --noproxy '*' -s "https://esm.sh/react" | head -1 | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
echo "Nåværende: $CURRENT"
echo "Tilgjengelig: $LATEST"
Bruk $LATEST som {REACT_VERSJON} i alle påfølgende steg. Sjekk scheduler på samme måte:
CURRENT_SCHEDULER=$(ls packages/scheduler/ | sort -V | tail -1)
LATEST_SCHEDULER=$(curl --noproxy '*' -s "https://esm.sh/scheduler" | head -1 | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+')
Commit-melding
⚠️ Agenten skal ikke kjøre git commit eller git push. Presenter forslag til commit-melding og la utvikleren committe selv.
Forslag til commit-melding:
chore: bump React til {REACT_VERSJON}
Legger til React {REACT_VERSJON}, React-DOM {REACT_VERSJON} og Scheduler {SCHEDULER_VERSJON}
i CDN. Import-stier skrevet om til Nav CDN URL-er.