[node.js] 설치하지 않고 npm에서 소스 다운로드

실제로 설치하지 않고 (즉, 사용하지 않고) 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를


답변

현재 공용 API를 사용하여 npm을 설치하지 않은 경우 URL에서 npm 레지스트리의 패키지에 대한 정보에 액세스 할 수도 있습니다 https://registry.npmjs.org/<package-name>/.

그런 다음에서 JSON을 탐색 versions > (version number) > dist > tarball하여 코드 아카이브의 URL을 가져와 다운로드 할 수 있습니다.


답변

npm pack XXX 입력이 가장 빠르며 아카이브를 다운로드합니다.

또는 :

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

이 명령은 또한 다음을 수행합니다.

  • 진행률 표시 줄이있는 패키지 다운로드
  • 라는 폴더로 추출 package


답변

리눅스에서는 보통 다음과 같은 패키지의 tarball을 다운로드합니다.

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

backticks“에 주목하십시오. stackoverflow에서 나는 그것들을 명확하게 볼 수 없습니다.

“v”는 뷰의 또 다른 별칭입니다.

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


답변

를 기반으로 구스타보로드 리 게스의 대답 .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


답변