실제로 설치하지 않고 (즉, 사용하지 않고) npm에서 패키지의 소스 코드를 다운로드하려면 npm install thepackage
) 합니까?
답변:
당신이 사용할 수있는 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를
npm pack --dry-run <package_name>
배치하지 않고 동일한 출력을 생성합니다 tgz
.
현재 공용 API를 사용하여 npm을 설치하지 않은 경우 URL에서 npm 레지스트리의 패키지에 대한 정보에 액세스 할 수도 있습니다 https://registry.npmjs.org/<package-name>/
.
그런 다음에서 JSON을 탐색 versions > (version number) > dist > tarball
하여 코드 아카이브의 URL을 가져와 다운로드 할 수 있습니다.
리눅스에서는 보통 다음과 같은 패키지의 tarball을 다운로드합니다.
wget `npm v [package-name] dist.tarball`
backticks``에 주목하십시오. stackoverflow에서 나는 그것들을 명확하게 볼 수 없습니다.
"v"는 뷰의 또 다른 별칭입니다.
를 기반으로 구스타보로드 리 게스의 대답 .TGZ에서 수정 "패키지"디렉토리, 최신 마이너 버전 검색을 추가합니다.
#!/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>
현재 가장 짧은 방법입니다