Przejmuję tę rozmowę, ponieważ chciałbym wskazać narzędzie, które pomaga odzyskać wolne miejsce na twoim komputerze. Najwyraźniej node_moduleszajmują 21bg atm na moim komputerze; npkillmoże Ci w tym pomóc ! [wprowadź opis obrazu tutaj ] ( i.stack.imgur.com/BKbyU.png )
Ahmad Alfy,
Odpowiedzi:
181
Prawdopodobnie chcesz zmierzyć wpływ pakietu, jeśli dodasz go do pakietu aplikacji. Większość innych odpowiedzi szacuje tylko rozmiar plików źródłowych, które mogą być niedokładne z powodu komentarzy w wierszu, długich nazw zmiennych itp.
Jest małe narzędzie, które stworzyłem, które powie ci min + gzip rozmiar pakietu po tym, jak dostanie się do twojego pakietu -
Trochę przesada, trzeba ponownie zainstalować wszystkie moduły przed obliczeniami. Ale spełnia swoje zadanie.
pdem
7
nie używaj tego pakietu - tworzy folder artefaktów o nazwie nodemodules.bak, który tworzy brzydkie efekty uboczne
Nth.gol
22
Stworzyłem narzędzie, rozmiar pobierania npm , które sprawdza rozmiar tarballa dla danego pakietu npm, włączając w to wszystkie tarballe w drzewie zależności. Daje to wyobrażenie o koszcie (czas instalacji, miejsce na dysku, zasoby wykonawcze, audyt bezpieczeństwa, ...) dodania zależności z góry.
Na powyższym obrazku rozmiar Tarball to tar.gz pakietu i Całkowity rozmiar to rozmiar wszystkich archiwów. Narzędzie jest dość proste, ale robi to, co mówi.
Dostępne jest również narzędzie CLI . Możesz to zainstalować w ten sposób:
Utworzyłem Package Phobia na początku tego roku z nadzieją, że informacje o rozmiarze paczki pojawią się na npmjs.com, a także śledzę rozrost paczek w czasie.
Ma to na celu pomiar miejsca na dysku po uruchomieniu npm installdla zależności po stronie serwera, takich jak expresslub zależności deweloperskie, takie jakjest .
„Rozmiar po rozpakowaniu” (w zasadzie rozmiar do opublikowania) jest dostępny w witrynie npmjs.com wraz z pozycją „Całkowita liczba plików”. Jednak nie jest to rekurencyjne, co oznacza, żenpm install prawdopodobnie będzie znacznie większe, ponieważ pojedynczy pakiet prawdopodobnie zależy od wielu pakietów (dlatego fobia pakietu jest nadal aktualna).
Istnieje również oczekujący dokument RFC dotyczący funkcji, która drukuje te informacje z interfejsu CLI.
To świetnie, ale dlaczego jego wyniki różnią się tak znacznie od bundlefobii? np. porównaj wyniki dla lodash.lowerfirst
Danyal Aytekin
2
@DanyalAytekin Ponieważ mierzą różne rzeczy. Krótka odpowiedź: jeśli szukasz pakietu front-end, użyj BundlePhobia. Jeśli szukasz pakietu zaplecza, użyj PackagePhobia. Więcej szczegółów można znaleźć w pliku readme, jeśli jesteś zainteresowany.
styfle
16
Jeśli używasz webpacka jako pakietu modułów, spójrz na:
Zdecydowanie polecam pierwszą opcję. Pokazuje rozmiar w interaktywnej mapie drzewa. Pomaga to znaleźć rozmiar pakietu w dołączonym pliku.
Inne odpowiedzi w tym poście pokazują rozmiar projektu, ale możesz nie używać wszystkich części projektu, na przykład podczas potrząsania drzewem. Inne podejścia mogą wtedy nie pokazać dokładnego rozmiaru.
Jeśli używasz Visual Studio Code, możesz użyć rozszerzenia o nazwie Koszt importu .
To rozszerzenie będzie wyświetlane w edytorze w rozmiarze importowanego pakietu. Rozszerzenie wykorzystuje webpack z wtyczką babili-webpack w celu wykrycia importowanego rozmiaru.
To rozszerzenie nie działa dla wszystkich pakietów. Pokazuje Obliczanie ... a potem nagle znika nawet po zmianie wartości limitu czasu na bardzo dużą liczbę
shreyansh
2
Możesz sprawdzić npm-module-stats . Jest to moduł npm, który pobiera rozmiar modułu npm i jego zależności bez instalowania lub pobierania modułu.
Stosowanie:
var stats = require("npm-module-stats");
stats.getStats("glob").then((stack) => {
let dependencies = Object.keys(stack);
let totalSize = dependencies.reduce((result, key, index) => {
return result + stack[key].size;
}, 0);
console.log('Total Size in Bytes ', totalSize);
console.log('Total Dependencies ', dependencies.length-1);
}).catch((err) => {
console.error(err);
});
Może się to wydawać trochę rozwlekłe, ale odpowiednio rozwiązuje problem, który opisałeś.
W takim razie skorzystaj z innej usługi, takiej jak unpkg.com . Przykład:curl -i https://unpkg.com/[email protected]/dist/axios.min.js | grep Content-Length
thoragio
2
howfat to jeszcze jedno narzędzie, które może pokazać całkowity rozmiar paczki:
node_modules
zajmują 21bg atm na moim komputerze;npkill
może Ci w tym pomóc ! [wprowadź opis obrazu tutaj ] ( i.stack.imgur.com/BKbyU.png )Odpowiedzi:
Prawdopodobnie chcesz zmierzyć wpływ pakietu, jeśli dodasz go do pakietu aplikacji. Większość innych odpowiedzi szacuje tylko rozmiar plików źródłowych, które mogą być niedokładne z powodu komentarzy w wierszu, długich nazw zmiennych itp.
Jest małe narzędzie, które stworzyłem, które powie ci min + gzip rozmiar pakietu po tym, jak dostanie się do twojego pakietu -
https://bundlephobia.com
źródło
https://cost-of-modules.herokuapp.com
teraz kieruje dohttps://bundlephobia.com
bardzo przydatnego narzędzia przy okazji.Spójrz na ten projekt kosztu modułów . Jest to pakiet npm, który podaje rozmiar pakietu i liczbę dzieci.
Instalacja:
npm install -g cost-of-modules
Sposób użycia: Uruchom
cost-of-modules
w katalogu, w którym pracujesz.źródło
Stworzyłem narzędzie, rozmiar pobierania npm , które sprawdza rozmiar tarballa dla danego pakietu npm, włączając w to wszystkie tarballe w drzewie zależności. Daje to wyobrażenie o koszcie (czas instalacji, miejsce na dysku, zasoby wykonawcze, audyt bezpieczeństwa, ...) dodania zależności z góry.
Na powyższym obrazku rozmiar Tarball to tar.gz pakietu i Całkowity rozmiar to rozmiar wszystkich archiwów. Narzędzie jest dość proste, ale robi to, co mówi.
Dostępne jest również narzędzie CLI . Możesz to zainstalować w ten sposób:
I użyj tego w ten sposób:
Kod źródłowy jest dostępny na Github: api , narzędzie CLI i klient sieciowy .
źródło
Utworzyłem Package Phobia na początku tego roku z nadzieją, że informacje o rozmiarze paczki pojawią się na npmjs.com, a także śledzę rozrost paczek w czasie.
https://packagephobia.com
Ma to na celu pomiar miejsca na dysku po uruchomieniu
npm install
dla zależności po stronie serwera, takich jakexpress
lub zależności deweloperskie, takie jakjest
.Możesz przeczytać więcej o tym narzędziu i innych podobnych narzędziach w pliku readme tutaj: https://github.com/styfle/packagephobia
Zaktualizuj 2020
„Rozmiar po rozpakowaniu” (w zasadzie rozmiar do opublikowania) jest dostępny w witrynie npmjs.com wraz z pozycją „Całkowita liczba plików”. Jednak nie jest to rekurencyjne, co oznacza, że
npm install
prawdopodobnie będzie znacznie większe, ponieważ pojedynczy pakiet prawdopodobnie zależy od wielu pakietów (dlatego fobia pakietu jest nadal aktualna).Istnieje również oczekujący dokument RFC dotyczący funkcji, która drukuje te informacje z interfejsu CLI.
źródło
Jeśli używasz webpacka jako pakietu modułów, spójrz na:
Zdecydowanie polecam pierwszą opcję. Pokazuje rozmiar w interaktywnej mapie drzewa. Pomaga to znaleźć rozmiar pakietu w dołączonym pliku.
Inne odpowiedzi w tym poście pokazują rozmiar projektu, ale możesz nie używać wszystkich części projektu, na przykład podczas potrząsania drzewem. Inne podejścia mogą wtedy nie pokazać dokładnego rozmiaru.
źródło
Spróbuj użyć rozmiaru pakietu .
https://github.com/egoist/package-size
źródło
Jeśli używasz Visual Studio Code, możesz użyć rozszerzenia o nazwie Koszt importu .
źródło
Możesz sprawdzić npm-module-stats . Jest to moduł npm, który pobiera rozmiar modułu npm i jego zależności bez instalowania lub pobierania modułu.
Stosowanie:
Może się to wydawać trochę rozwlekłe, ale odpowiednio rozwiązuje problem, który opisałeś.
źródło
"Szybkim i brudnym" sposobem jest użycie curl i wzrd.in do szybkiego pobrania zminimalizowanej paczki, a następnie grep rozmiaru pliku:
curl -i https://wzrd.in/standalone/axios@latest | grep Content-Length
Pobieranie jest zminimalizowane, ale nie gzipowane, ale porównując dwa lub więcej z nich, można dobrze zrozumieć relatywny rozmiar pakietów.
źródło
curl -i https://unpkg.com/[email protected]/dist/axios.min.js | grep Content-Length
howfat to jeszcze jedno narzędzie, które może pokazać całkowity rozmiar paczki:
źródło