Javascript greier det er verdt å vite om
Tip
Greier som er litt mindre kjent enn giganter som Node.js og Next.js som kan være verdt å vite om
Runtimes
Bun
- Alternativ til Node.js
- Innebygget test runner
- Innebygget pakke manager
- Mye raskere. Veldig merkbart på testkjøringer og ekvivalenten til npm install
- Skal i prinsippet være kompatibelt med all Node.js kode, inkludert alle npm pakker
- Typescript innebygd, dvs. man trenger ikke å transpilere ned til Javascript først.
- Støtter å bruke ES Modules og CommonJS om hverandre
Deno
- Alternativ til Node.js, laget av skaperen av Node.js Ryan Dahl
- Støtter Typescript out of the box, uten behov for et transpileringsteg
- Kan importere moduler ved å peke til en nettaddresse istedet for å måtte gjøre en npm install
Wasmer
- Runtime for web assembly
- Kan i prinsippet kjøre hvilket som helst språk som kan kompileres ned til web assembly
Javascript Server Rammeverk
Astro
- Et alternativ til Next.js, Nuxt og Gatsby.
- Rammeverk agnostisk. Fungerer med Vue, Svelte, Solid, Alpine, react etc.
- Disse kan legges inn på en side som Islands om hverandre. Sånn sett en slags microfrontend arkitektur.
Qwik
- Laget av samme duden som laget Angular og PartyTown
- Introduserer konseptet "Resumability"
- Fokuserer på å laste ned det absolutte minimum av Javascript.
- Laster f.eks. ned funksjonen som skal kalles idet man trykker på en knapp når man trykker på knappen
UI Rammeverk
Alpine.js
- Et rammeverk som fungerer som en drop in i en eksisterende markup/html.
- Legger til et sett med html-attributter, javascript objekter og metoder som kan brukes i eksisterende html kode
- Kan ses på som en slags moderne versjon av jQuery. Dropp det inn i eksisterende markup og få alle fordelene man får fra andre UI rammeverk
Fullstack on edge
Remix
- Et alternativ til Next.js
- Kostet egentlig penger for lisens, men ble endret til en Open Source modell
- Introduserte en del nye konsepter som Next.js 13 stjal
- Fil basert routing
- Nested routes, hvor hver komponent kan lastes i parallell og uavhengig av hverandre
- Har trolig en av de beste produktsidene jeg har sett
- Kan kjøres i Edge runtimes
Fresh by Deno
- Web app rammeverk laget av samme folka som lagde Deno
- Kan kjøres i Edge runtime
- Fil basert routing
- Typescript out of the box
- Island client side hydration
- Som i Remix: Nettsiden laster inn flere komponenter som fungerer uavhengig av hverandre. Kan lastes i paralell
WebContainer
StackBlitz
- En kode-editor som kjører i nettleser og som bruker WebContainer behind the scenes.
- Lar deg kjøre server-side node kode lokalt i nettleseren vha. WebAssembly OSet WebContainers
- Kjører opp et fresht miljø på sekunder
- Nyttig for å kjapt kunne teste endringer i en PR uten å måtte gjøre en checkout på kodebasen lokalt
Servere
- En "JavaScript Service Workers Server"
- Kompatibel med WebAssembly, som betyr at det kan kjøres "natively" ved hjelp av f.eks. Wasmer.
- Som igjen betyr at den er blazing fast™️
- Poenget med det er å kunne kjøre Service Workers der Node er for tungt å kjøre. Typisk IoT dingser.
Bundlers
Parcel
- Bundler som ikke krever noe config
- Custom config kan legges til ved behov
- Installerer npm pakker automatisk dersom man legger til en import i kode
- Pek på en fil, så finner Parcel ut hva den må installere og gjøre