Facebook har utviklet Yarn for å løse problemene utviklere opplever med npm-klienten når det gjelder fart, pålitelighet og sikkerhet. (Bilde: Facebook, Dmitry Baranovskiy/Flickr. Montasje: digi.no (CC BY 2.0))

Facebook utgir raskere alternativ for håndtering av JavaScript-pakker

Når npm ikke er tilstrekkelig.

JavaScript brukes ikke lenger bare til å implementere enkel funksjonalitet på websider. Ofte brukes det til å utvikle store applikasjoner, både på klient- og serversiden. Og som med utvikling ellers, er det lite hensiktsmessig å finne opp hjulet på nytt, dersom man bare kan laste ned et bibliotek eller fem med den funksjonaliteten man ønsker. 

Problemet er at mange av disse bibliotekene og rammeverkene avhenger av andre biblioteker igjen, som i sin tur kanskje avhenger av helt andre biblioteker. For å administrere dette, benytter derfor mange utvikler et eget pakkeadministrasjonsverktøy. Det mest populære heter npm, som gir tilgang til mer enn 300 000 pakker med gjenbrukbar kode. 

Leste du denne? – I praksis har vi programmert hjernen til eiendomsmeglerne i JavaScript

Yarn

Men nå har Facebook kommet med alternativ til npm. Facebook har selv brukt npm i flere år, men opplevde etter hvert at npm ikke strakk helt til på en del områder. Selskapet opplevde problemer med både ytelse, sikkerhet og pålitelighet.

Derfor har selskapet utviklet en ny klient, som har fått navnet Yarn. Den er fortsatt kompatibel med npm-registeret, men skal altså være raskere, sikrere og mer pålitelig enn npm-klienten.

Yarn er nå utgitt som åpen kildekode og kan enklest installeres ved å bruke npm:

npm install --global yarn

Flere alternative metoder, inkludert en skriptfil til macOS, en.msi-fil til Windows og egne pakkebrønner til flere ulike Linux-distribusjoner, finnes på denne siden.

Med hjelp fra ingeniører hos Exponent, Google og Tilde har Facebook testet Yarn sammen med alle de største JavaScript-rammeverkene, og også i forbindelse med brukstilfeller på utsiden av Facebook. Bakgrunnen for utgivelsen er at Facebook fikk høre at også andre utviklere opplever noen av de samme problemene som dem selv med npm og andre eksisterende løsninger. 

Detaljene om arkitekturen og funksjonaliteten til Yarn finnes her

Les også: Microsoft lover raskere Node.js med ChakraCore

Raskere, påliteligere, sikrere

Men kort fortalt har man oppnådd høyere fart og ytelse ved at alle pakker som lastes ned, blir mellomlagret lokalt, slik at de ikke behøver å lastes ned på nytt. I tillegg parallellkjøres operasjonene for å utnytte ressursene maksimalt. Selv uten caching skal Yarn kunne installere avhengigheter betydelig raskere enn npm, men det finnes også unntak.

Cachede pakker kan installeres på nytt uten internettilgang.

Bedre pålitelighet skal ha blitt oppnådd ved å bruke et detaljert, men kortfattet format for låsefiler, sammen med en deterministisk algoritme for installasjoner. Dette skal garantere at en installasjon som fungerer på ett system, og vil fungere på nøyaktig samme måte på ethvert annet system.

På sikkerhetssiden er det først og fremst integritetstesting av pakkene ved hjelp av sjekksummer, som er nytt med Yarn.

Til små enheter: Samsung med JavaScript-motor i fluevektklassen

Kommentarer (5)

Kommentarer (5)
Til toppen