설치하지 않고 npm에서 소스 다운로드


84

실제로 설치하지 않고 (즉, 사용하지 않고) npm에서 패키지의 소스 코드를 다운로드하려면 npm install thepackage ) 합니까?

답변:


83

당신이 사용할 수있는 npm view [package name] dist.tarball압축 된 패키지 파일의 URL을 반환하는 것을 .

다음 wget은 tarball을 다운로드하는 데 사용하는 예입니다 .

wget $(npm view lodash dist.tarball)

8
npm pack <package's name>현재 가장 짧은 방법입니다
19시

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


0

를 기반으로 구스타보로드 리 게스의 대답 .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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.