Jak mogę pobrać kod źródłowy pakietu z npm bez faktycznej instalacji (tj. Bez używania npm install thepackage
)?
85
Możesz użyć, npm view [package name] dist.tarball
który zwróci adres URL skompresowanego pliku pakietu.
Oto przykład użycia wget
do pobrania tarballa:
wget $(npm view lodash dist.tarball)
npm pack <package's name>
jest najkrótszą obecną drogąProstszym sposobem na to jest
npm pack <package_name>
. Spowoduje to pobranie archiwum tar z rejestru, umieszczenie go w pamięci podręcznej npm i umieszczenie kopii w bieżącym katalogu roboczym. Zobacz https://docs.npmjs.com/cli/packźródło
npm pack --dry-run <package_name>
zwróci dokładnie to samo wyjście, bez umieszczaniatgz
pliku w bieżącym katalogu.Jeśli nie zainstalowałeś npm , z obecnym publicznym API, możesz również uzyskać dostęp do informacji o pakiecie w rejestrze npm z adresu URL
https://registry.npmjs.org/<package-name>/
.Następnie możesz przejść do JSON pod adresem,
versions > (version number) > dist > tarball
aby uzyskać adres URL archiwum kodu i pobrać go.źródło
npm pack XXX
jest najszybszy do wpisania i pobierze archiwum.Alternatywnie:
to polecenie również:
package
źródło
W Linuksie zazwyczaj pobieram archiwum takiego pakietu:
wget `npm v [package-name] dist.tarball`
Zwróć uwagę na backticks ``, na stackoverflow nie widzę ich wyraźnie.
„v” to po prostu kolejny alias do wyświetlenia:
https://docs.npmjs.com/cli/view
źródło
Opierając się na odpowiedzi Gustavo Rodriguesa , naprawia katalog „pakiet” w .tgz, dodaje najnowsze wykrywanie wersji pomocniczych.
#!/bin/bash if [[ $# -eq 0 ]] ; then echo "Usage: $0 jquery bootstrap@3 [email protected]" exit 64 ## EX_USAGE fi set -e ## So nothing gets deleted if download fails for pkg_name in "$@" do ## Get latest version, also works with plain name url=$( npm v $pkg_name dist.tarball | tail -n 1 | cut -d \' -f 2 ) tmp_dir=$( mktemp -d -p . "${pkg_name}__XXXXXXXXX" ) ## Unpacks to directory named after package@version curl $url | tar -xzf - --strip 1 --directory $tmp_dir rm -rf $pkg_name mv $tmp_dir $pkg_name done
źródło