node.js - Hvordan påvirker den utpakkede størrelsen den minimerte størrelsen på en npm-pakke?
Jeg prøver for tiden å redusere pakkestørrelsen på en npm-pakke jeg har laget. Og jeg klarte å komme ned til en upakket størrelse på omtrent 210 kb.
https://www.npmjs.com/package/@agile-ts/core/v/0.0.12 <- 210kb
https://www.npmjs.com/package/@agile-ts/core/v/0.0.11 <- 304kb (med kommentarer)
En endring jeg gjorde var å fjerne alle kommentarene ved hjelp av 'tsconfig'-filen, noe som reduserte min upakkede størrelse med omtrent 100kb, MEN den minimerte størrelsen forble den samme (57kb)?
https://bundlephobia.com/result?p=@agile-ts/[e-post beskyttet] <- 57 kB
https://bundlephobia.com/result?p=@agile-ts/[epost beskyttet] <- 57 kB (med kommentarer)
Så jeg lurte på hvordan den utpakkede størrelsen påvirker den minimerte størrelsen. Er kommentarer allerede fjernet i den minimerte størrelsen? Jeg fant ingen svar på dette spørsmålet på internett.
En annen pakke jeg fant har en utpakket størrelse på omtrent 325 kb
https://www.npmjs.com/package/@hookstate/core <- 325kb
men en minifisert størrelse på 16,7 kB.
https://bundlephobia.com/result?p=@hookstate/[e-post beskyttet] <- 16,7 kb
-> Den er omtrent 30 % større i utpakket størrelse, men 70 % mindre i minifisert størrelse?
Den eneste forskjellen jeg fant, er at pakken jeg nettopp nevnte består av 10 filer, og pakken min består av 66 filer. Så den er mindre enn pakken min.. men da burde den også være mindre i den utpakkede størrelsen.
Hvis du har noen idé om hvordan du kan redusere pakkestørrelsen.. føl deg fri til å bidra ^^eller gi meg noen råd https://github.com/agile-ts/agile/issues/106
Takk ;D
Svar #1
Det som bør være viktig, er IKKE hvor mye pakken inneholder på disken, men hvor mye plass den tar i en endelig applikasjon etter at all sammenstilling og minifisering er brukt. Denne prosessen inkluderer omdøping av variabelnavn, fjerning av kommentarer, tree shaking og fjerning av ubrukt/ureferert kode. Det finnes verktøy som lar deg inspisere den endelige applikasjonens størrelse og størrelsen på avhengigheter. De er forskjellige avhengig av hvilken bundler du bruker.
Det er en veldig dårlig idé å fjerne kommentarer fra kildekoden med det formål å redusere størrelsen på nedlastingen av pakken din. Det er også dårlig å fjerne andre utviklingsstøttende filer som Typescript-definisjoner, osv.