実際にインストールせずに(つまり、npm install thepackage
を使用せずに)npmからパッケージのソースコードをダウンロードするにはどうすればよいですか?
npm view [package name] dist.tarball
を使用すると、圧縮パッケージファイルのURLが返されます。
wget
を使用してtarballをダウンロードする例を次に示します。
wget $(npm view lodash dist.tarball)
これを行う簡単な方法はnpm pack <package_name>
。これにより、レジストリからtarballが取得され、npmキャッシュに配置され、現在の作業ディレクトリにコピーが配置されます。 https://docs.npmjs.com/cli/pack を参照してください
Linuxでは、通常、次のようなパッケージのtarballをダウンロードします。
wget `npm v [package-name] dist.tarball`
バックティックに注意してください」、stackoverflowでは、はっきりと見ることができません。
「v」はビューの別のエイリアスです。
npm pack XXX
は入力が最も速く、アーカイブをダウンロードします。
代わりに:
npm v XXX dist.tarball | xargs curl | tar -xz
このコマンドは次のことも行います。
package
というフォルダーに解凍しますnpmをインストールしていない場合、現在のパブリックAPIでは、URL _https://registry.npmjs.org/<package-name>/
_からnpmレジストリ内のパッケージに関する情報にアクセスすることもできます。
次に、versions > (version number) > dist > tarball
でJSONをナビゲートして、コードアーカイブのURLを取得し、ダウンロードできます。
Gustavo Rodrigues's answer に基づいて、.tgzの「パッケージ」ディレクトリを修正し、最新のマイナーバージョン検出を追加します。
#!/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