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


84

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

回答:


83

npm view [package name] dist.tarball圧縮されたパッケージファイルのURLを返すwhichを使用できます。

wgettarballのダウンロードに使用する例を次に示します。

wget $(npm view lodash dist.tarball)

8
npm pack <package's name>現在の最短の方法です
15:03に歓喜

これはnpm認証情報を使用せず、プライベートパッケージで401エラーが発生するため、反対票を投じました。
Der Hochstapler

59

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


完璧です。またnpm pack --dry-run <package_name>tgzファイルを現在のディレクトリに配置せずに、まったく同じ出力を生成します。
friederbluemle

40

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

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


1
ありがとうございました!これが私が探していたものです
Aditya Vikas Devarapalli

28

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

または:

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

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

  • プログレスバー付きのパッケージをダウンロードする
  • と呼ばれるフォルダに抽出します package

21

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

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

バッククォートに注意してください」、stackoverflowでははっきりと見えません。

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

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


2
このコマンドは、tarballへの直接リンクを提供します。Registry.npmjs.org/packagename/-/packagename-version.tgz
Ernst Ernst

0

Gustavo Rodriguesの回答に基づいて、.tgzの「package」ディレクトリを修正し、最新のマイナーバージョンの検出を追加します。

#!/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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.