¿Cómo puedo descargar el código fuente de un paquete de npm sin realmente instalarlo (es decir, sin usar npm install thepackage
)?
Respuestas:
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)
Una 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/pack
npm pack --dry-run <package_name>
producirá exactamente la misma salida, sin colocar el tgz
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.
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:
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 tinymce@4.5"
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
npm pack <package's name>
es el camino actual más corto