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