¿Cómo puedo descargar el código fuente de un paquete de npm sin realmente instalarlo (es decir, sin usar npm install thepackage
)?
84
Puede usar npm view [package name] dist.tarball
que devolverá la URL del archivo del paquete comprimido.
Aquí hay un ejemplo de uso wget
para descargar el tarball:
wget $(npm view lodash dist.tarball)
npm pack <package's name>
es el camino actual más cortoUna forma más sencilla de hacerlo es
npm pack <package_name>
. Esto recuperará el tarball del registro, lo colocará en su caché npm y colocará una copia en el directorio de trabajo actual. Ver https://docs.npmjs.com/cli/packfuente
npm pack --dry-run <package_name>
producirá exactamente la misma salida, sin colocar eltgz
archivo en el directorio actual.Si no ha instalado npm , con la API pública actual, también puede acceder a la información sobre un paquete en el registro de npm desde la URL
https://registry.npmjs.org/<package-name>/
.Luego, puede navegar por JSON en
versions > (version number) > dist > tarball
para obtener la URL del archivo de código y descargarlo.fuente
npm pack XXX
es el más rápido de escribir y descargará un archivo.Alternativamente:
este comando también:
package
fuente
En Linux normalmente descargo el tarball de un paquete como este:
wget `npm v [package-name] dist.tarball`
Observe las comillas invertidas ``, en stackoverflow no puedo verlas claramente.
"v" es solo otro alias de vista:
https://docs.npmjs.com/cli/view
fuente
Basado en la respuesta de Gustavo Rodrigues , corrige el directorio "paquete" en .tgz, agrega el último descubrimiento de versiones menores.
#!/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
fuente