web-dev-qa-db-ja.com

npmからインストールせずにソースをダウンロードする

実際にインストールせずに(つまり、npm install thepackageを使用せずに)npmからパッケージのソースコードをダウンロードするにはどうすればよいですか?

55
AURIGADL

npm view [package name] dist.tarballを使用すると、圧縮パッケージファイルのURLが返されます。

wgetを使用してtarballをダウンロードする例を次に示します。

wget $(npm view lodash dist.tarball)
55

これを行う簡単な方法はnpm pack <package_name>。これにより、レジストリからtarballが取得され、npmキャッシュに配置され、現在の作業ディレクトリにコピーが配置されます。 https://docs.npmjs.com/cli/pack を参照してください

38
grahamaj

Linuxでは、通常、次のようなパッケージのtarballをダウンロードします。

wget `npm v [package-name] dist.tarball`

バックティックに注意してください」、stackoverflowでは、はっきりと見ることができません。

「v」はビューの別のエイリアスです。

https://docs.npmjs.com/cli/view

21
Marcs

npm pack XXXは入力が最も速く、アーカイブをダウンロードします。

代わりに:

npm v XXX dist.tarball | xargs curl | tar -xz

このコマンドは次のことも行います。

  • 進行状況バー付きのパッケージをダウンロードする
  • packageというフォルダーに解凍します
19
bfred.it

npmをインストールしていない場合、現在のパブリックAPIでは、URL _https://registry.npmjs.org/<package-name>/_からnpmレジストリ内のパッケージに関する情報にアクセスすることもできます。

次に、versions > (version number) > dist > tarballでJSONをナビゲートして、コードアーカイブのURLを取得し、ダウンロードできます。

11
Matteo T.

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
0