Comment puis-je télécharger le code source d'un paquet à partir de npm sans l'installer (c'est-à-dire sans utiliser la fonction npm install thepackage
) ?
Réponses
Trop de publicités?Sur la base de La réponse de Gustavo Rodrigues corrige le répertoire "package" dans .tgz, ajoute la découverte de la dernière version mineure.
#!/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
Mon équipe a créé Gadget OSS pour faciliter ce genre de choses, surtout lorsqu'on travaille dans différents écosystèmes. L'un des outils de cette suite s'appelle oss-download
:
oss-download pkg:npm/express # Latest version
oss-download pkg:npm/express@4.17.1 # Specific version
oss-download pkg:npm/express@* # All versions
oss-download -e pkg:npm/express # Decompress contents recursively
Si vous n'êtes intéressé que par npm, alors npm pack
est votre meilleure option, mais si vous n'avez pas installé npm ou si vous avez besoin de faire des choses similaires avec PyPI, RubyGems, NuGet, etc., alors OSS Gadget peut vous être utile.
- Réponses précédentes
- Plus de réponses