wake-up-neo.net

Laden Sie die Quelle von npm herunter, ohne sie zu installieren

Wie kann ich den Quellcode eines Pakets von npm herunterladen, ohne es tatsächlich zu installieren (d. H. Ohne npm install thepackage)?

53
AURIGADL

Sie können npm view [package name] dist.tarball verwenden, um die URL der komprimierten Paketdatei zurückzugeben.

51

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

35
grahamaj

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:

https://docs.npmjs.com/cli/view

18
Marcs

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:

  • Laden Sie das Paket mit Fortschrittsbalken herunter
  • Extrahiert in einen Ordner namens package
18
bfred.it

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.

9
Matteo T.

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
0