Wie kann ich den Quellcode eines Pakets von npm herunterladen, ohne es tatsächlich zu installieren (dh ohne zu verwenden npm install thepackage
)?
83
Sie können verwenden npm view [package name] dist.tarball
, um die URL der komprimierten Paketdatei zurückzugeben.
Hier ist ein Beispiel wget
zum Herunterladen des Tarballs:
wget $(npm view lodash dist.tarball)
npm pack <package's name>
ist der kürzeste aktuelle WegEin einfacher Weg, dies zu tun, ist
npm pack <package_name>
. Dadurch wird der Tarball aus der Registrierung abgerufen, in Ihrem npm-Cache abgelegt und eine Kopie in das aktuelle Arbeitsverzeichnis gestellt. Siehe https://docs.npmjs.com/cli/packquelle
npm pack --dry-run <package_name>
erzeugt dieselbe exakte Ausgabe, ohne dietgz
Datei im aktuellen Verzeichnis abzulegen.Wenn Sie npm mit der aktuellen öffentlichen API nicht installiert haben , können Sie auch über die URL auf die Informationen zu einem Paket in der npm-Registrierung zugreifen
https://registry.npmjs.org/<package-name>/
.Anschließend können Sie im JSON unter navigieren
versions > (version number) > dist > tarball
, um die URL des Codearchivs abzurufen und herunterzuladen.quelle
npm pack XXX
ist am schnellsten zu tippen und es wird ein Archiv heruntergeladen.Alternative:
Dieser Befehl wird auch:
package
quelle
Unter Linux lade ich normalerweise den Tarball eines Pakets wie dieses herunter:
wget `npm v [package-name] dist.tarball`
Beachten Sie die Backticks ``, bei Stackoverflow kann ich sie nicht klar sehen.
"v" ist nur ein weiterer Alias für die Ansicht:
https://docs.npmjs.com/cli/view
quelle
Basierend auf der Antwort von Gustavo Rodrigues wird das "Paket" -Verzeichnis in .tgz korrigiert und die neueste Entdeckung kleinerer Versionen hinzugefügt.
#!/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
quelle