Wie kann ich den Quellcode eines Pakets von npm herunterladen, ohne es tatsächlich zu installieren (d. H. Ohne npm install thepackage
)?
Sie können npm view [package name] dist.tarball
verwenden, um die URL der komprimierten Paketdatei zurückzugeben.
Eine einfachere Methode ist npm pack <package_name>
. Dadurch wird das Tarball aus der Registrierung abgerufen, im npm-Cache abgelegt und eine Kopie im aktuellen Arbeitsverzeichnis abgelegt. Siehe https://docs.npmjs.com/cli/pack
Unter Linux lade ich normalerweise den Tarball eines Pakets herunter:
wget `npm v [package-name] dist.tarball`
Beachten Sie die Backticks ``, auf stackoverflow kann ich sie nicht klar sehen.
"v" ist nur ein weiterer Alias für die Ansicht:
npm pack XXX
ist am schnellsten einzugeben und lädt ein Archiv herunter.
Alternative:
npm v XXX dist.tarball | xargs curl | tar -xz
dieser Befehl wird auch:
package
Wenn Sie npm nicht mit der aktuellen öffentlichen API installiert haben, können Sie auch über die URL https://registry.npmjs.org/<package-name>/
auf die Informationen zu einem Paket in der npm-Registry zugreifen.
Dann können Sie im JSON unter versions > (version number) > dist > tarball
navigieren, um die URL des Code-Archivs abzurufen und herunterzuladen.
Basierend auf Gustavo Rodrigues 'answer , behebt das Paketverzeichnis in .tgz.
#!/bin/bash
if [[ $# -eq 0 ]] ; then
echo "Usage: $0 jquery [email protected] [email protected]"
exit 64 ## EX_USAGE
fi
set -e ## So nothing gets deleted if download fails
for pkg_name in "[email protected]"
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 [email protected]
curl $url | tar -xzf - --strip 1 --directory $tmp_dir
rm -rf $pkg_name
mv $tmp_dir $pkg_name
done