Bundle-størrelse og kodeoptimalisering
Reduser størrelsen på Worker-bundlen og CPU-bruken, slik at edge-koden lastes inn raskere og kjører innenfor grensene.
Bundle-størrelse og kodeoptimalisering er en gratis leksjon i Edge computing med Cloudflare Workers og Deno på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Edge computing med Cloudflare Workers og Deno, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Edge computing med Cloudflare Workers og Deno inneholder totalt 4 leksjoner.
Hvorfor pakkestørrelsen er viktig
Workers har en grense for skriptstørrelse (1 MB komprimert på gratisabonnementet, mer på betalte abonnementer).
Mindre pakker gir:
- Raskere analyse og oppstart
- Lavere minnebruk
- Mindre påvirkning fra kaldstart
Optimalisering av koden gir en direkte ytelsesforbedring på edge-miljøet.
Mål før De optimaliserer
Wrangler rapporterer pakkestørrelsen ved hver bygging. Mål alltid først.
wrangler deploy --dry-run
# Total Upload: 142.18 KiB / gzip: 38.94 KiBTree shaking
Bruk ES-modulene import/export slik at pakkeren kan utføre tree shaking av ubrukt kode.
Importer bare det De trenger. Importer aldri hele biblioteket når én enkelt funksjon er tilstrekkelig.
// Good: only pulls debounce
import debounce from 'lodash-es/debounce';
// Bad: pulls all of lodash
import _ from 'lodash';Foretrekk lette avhengigheter
Tunge npm-pakker gjør raskt pakkene større. Foretrekk små, edge-vennlige biblioteker.
- Bruk plattformens
URL,crypto.subtleogfetchi stedet for polyfills - Bytt ut moment.js med en liten hjelpefunksjon for datoer
- Analyser med en pakkestørrelsesanalyse
Bruk standardiserte web-API-er
Workers og Deno eksponerer mange API-er fra webplattformen direkte, slik at De unngår å pakke inn polyfills.
// Native crypto, no dependency needed
const hash = await crypto.subtle.digest(
'SHA-256',
new TextEncoder().encode('hello')
);Minifisering
Wrangler minifiserer produksjonsbygginger som standard, men bekreft at dette er aktivert.
[build]
minify = trueRedusere CPU-tid
Workers faktureres og begrenses etter CPU-tid, ikke veggklokketid. Optimaliser de mest brukte kodestiene:
- Unngå synkrone løkker over enorme tabeller
- Bufre beregnede resultater i KV eller minnet
- Strøm store svar i stedet for å bufre dem
Strøm i stedet for å bufre
Strømming sender data etter hvert som de produseres, slik at minnebruken holdes lav og CPU-bruken jevn.
const { readable, writable } = new TransformStream();
response.body.pipeTo(writable);
return new Response(readable, response);Last inn sjelden brukt kode etter behov
Dynamisk import() kan utsette innlasting av kodebaner som ikke alltid trengs, slik at den innledende modulen holdes liten.
if (needsHeavyFeature) {
const { process } = await import('./heavy.js');
process();
}Analyser pakken
Bruk et analyseverktøy for å se hvilke avhengigheter som tar mest plass. esbuild (som Wrangler bruker) kan generere en metafil.
esbuild src/index.ts --bundle --metafile=meta.json
# upload meta.json to esbuild.github.io/analyzeOppsummering av anbefalte fremgangsmåter
Slik holder De edge-koden rask og liten:
- Mål pakkestørrelsen ved hver utrulling
- Bruk tree shaking, og importer bare det som trengs
- Foretrekk innebygde web-API-er fremfor polyfills
- Minifiser, strøm og last inn etter behov
- Reduser CPU-tiden i de mest brukte kodestiene
Kort kontroll
Hvilken teknikk gjør det mest direkte mulig for pakkeren å fjerne ubrukt bibliotekskode?
Oppsummering
De har optimalisert både størrelse og hastighet:
- Mål først, og bruk deretter tree shaking og minifisering
- Bruk innebygde web-API-er og lette avhengigheter
- Strøm og last inn etter behov for å redusere minne- og CPU-bruk
- Analyser pakken for å finne problemområder
Slanke Workers starter raskere og koster mindre. Hver kilobyte teller på edge-miljøet.
Lær deg Edge computing med Cloudflare Workers og Deno med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 12
- Leksjoner
- 47
Ofte stilte spørsmål
Er leksjonen «Bundle-størrelse og kodeoptimalisering» gratis?
Ja – hele teksten i «Bundle-størrelse og kodeoptimalisering» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Edge computing med Cloudflare Workers og Deno-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Edge computing med Cloudflare Workers og Deno inneholder totalt 4 leksjoner.
Hva lærer jeg i «Bundle-størrelse og kodeoptimalisering»?
Reduser størrelsen på Worker-bundlen og CPU-bruken, slik at edge-koden lastes inn raskere og kjører innenfor grensene. Du øver på Edge computing med Cloudflare Workers og Deno med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Edge computing med Cloudflare Workers og Deno?
Ingen tidligere erfaring er nødvendig. Edge computing med Cloudflare Workers og Deno på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Bundle-størrelse og kodeoptimalisering»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Edge computing med Cloudflare Workers og Deno-leksjonen?
Ja. Alle Edge computing med Cloudflare Workers og Deno-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Strategier for hurtigbufring
- Cold starts og oppvarming
- Overvåking og logging
- Bundle-størrelse og kodeoptimalisering