126 votes

Télécharger les sources de npm sans les installer

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 ) ?

1voto

ruohola Points 15945

Pour simplement visualiser l'aperçu du contenu d'un paquet npm, sans rien télécharger localement, vous pouvez utiliser :

npm pack --dry-run <package-name>

Démonstration :

$ npm pack --dry-run express
npm notice
npm notice

1voto

JBress Points 11

Vous pouvez également accéder au contenu d'un paquet npm en utilisant UNPKG

https://unpkg.com/browse/[package-name]@[package-version]/

0voto

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

0voto

Scovetta Points 26

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X