Verdaccio : 개인 NPM 패키지의 쉽게 관리 할 수있는 강력한 도구
코어 포인트
Verdaccio는 NPM 상업용 개인 패키지 호스팅, 게시 및 관리 서비스에 대한 무료 대안입니다. 구성없이 로컬 NPM 레지스트리를 생성하고 자체 데이터베이스와 함께 제공됩니다.
Verdaccio는 로컬 캐시/프록시 서버 역할을하며 사용자 지정 저장소에서 종속성을 찾을 수없는 경우 공식 NPM 레지스트리에서 다운로드하여 로컬 스토리지 폴더에 저장됩니다. 또한 지역 개인 패키지 제작을 지원합니다.
Verdaccio는 설치 및 구성이 쉽고 가끔 충돌시 자동 재시작하도록 설정할 수 있습니다. 또한 사용자가 패키지를 게시하도록 등록 할 수 있습니다.
개인 패키지를 호스팅하는 것 외에도 Verdaccio는 공개 패키지를 캐시합니다. 스토리지 폴더에 요청 된 패키지가 있는지 확인하고, 찾을 수없는 경우, 요청을 공식 NPM 레지스트리로 전달하여 요청을 다운로드, 저장 및 회신합니다. 이는 공식 레지스트리가 다운 되더라도 캐시 된 버전에 여전히 액세스 할 수 있음을 의미합니다.
-
이 기사는 Panayiotis«pvgr»Velisarakos와 Jurgen van de Moere에 의해 검토되었습니다. itepoint 컨텐츠를 완벽하게 만드는 모든 Sitepoint Peer Reviewer에게 감사드립니다!
-
우리 모두가 알고 있듯이 NPM과 레지스트리는 사실상의 JavaScript 패키지 관리자이며 세계에서 가장 큰 코드 모음입니다. 그러나 때로는 놀라운 새로운 패키지를 개발할 때 추가 개인 정보가 필요합니다. 회사 프로젝트 (공개적으로 공유되지 않아야 함), 마스터/학사 논문 프로젝트이든, 나처럼 나처럼 새로운 주제에 대한 초기 시도를 부끄러워하기 때문에. -
어떤 이유로 든 많은 옵션이 있습니다. 아마도 가장 쉬운 방법은 NPM에 비즈니스 서비스를 등록한 다음 시작할 수 있습니다. 그러나 이것은 수수료가 필요하며 모든 사람의 지갑에 적합하지 않을 수 있습니다.
운 좋게도, 당신을 도울 수있는 Verdaccio라는 무료 대안이 있습니다. -
Verdaccio 소개
Verdaccio는 구성없이 로컬 NPM 레지스트리를 만들 수있는 NPM 패키지입니다. 이것은 자체 데이터베이스와 함께 필요한 모든 기능을 갖춘 프로젝트입니다. 로컬 캐시/프록시 서버 역할을하여이를 수행합니다.
이것은 사용자 정의 저장소에서 존재하지 않는 것을 설치하려고 할 때마다 공식 NPM 레지스트리를 핑하고 종속성을 다운로드한다는 것을 의미합니다. 사용자 정의 저장소는 이러한 종속성을 스토리지라는 간단한 폴더에 저장합니다. 다음 설치는이 로컬 캐시의 사본을 사용합니다. 가장 중요한 것은 NPM Login/AddUser/Publish와 같은 NPM 클라이언트의 일부 명령이 복사되어 지역 개인 패키지 생성을 지원합니다.이 기사의 뒷부분에서 볼 수 있습니다.
이것이 새로운 것이 아니라고 생각한다면 이미 시노피아가 있습니다. 당신은 옳습니다. Verdaccio는 후진 호환성을 유지하는 Sinopia의 포크 일 뿐이지 만 동시에 공식 NPM의 변화를 따라 잡으려고합니다. Sinopia에서 사용할 수없는 이러한 변경 사항 중 하나는 SCOPE 패키지입니다. Angular 2 또는 TypeScript NPM 호스팅 유형과 같은 라이브러리를 사용하기 전에 보았을 수도 있습니다. 앞의 것의 @ 기호로 쉽게 식별 할 수 있습니다.
Sinopia와 Verdaccio는 모두 Mac/Linux 및 Windows에서 제공됩니다.
Verdaccio의 초보자
Verdaccio는 NPM 패키지이므로 다음 명령을 실행하여 간단히 설치할 수 있습니다.
<code># 安装 Angular2 依赖项
npm install @angular/core
# 安装 TypeScript 的官方 Node.js 类型定义
npm install @types/node</code>
로그인 후 복사
로그인 후 복사
로그인 후 복사
그러면 Verdaccio에게 전화하면 인스턴스가 시작되어 개인 레지스트리가 실행됩니다.
기본적으로 포트 4873에서 듣습니다. 나중에이 설정을 변경하는 방법에 대해 논의하겠습니다.
이 기사에서는 개발 기계에 레지스트리 설정을 소개합니다. 기업 환경에서는 모든 개발자가 액세스 할 수 있도록 전용 서버에서이를 수행해야 할 수도 있습니다.
verdaccio는 node.js 응용 프로그램이므로 충돌 할 때마다 다시 시작해야합니다. PM2를 사용하는 것이 좋습니다. 다음 단계 만 실행하면됩니다.
<code>npm install -g verdaccio</code>
로그인 후 복사
로그인 후 복사
로그인 후 복사
또한,이 기사를 읽은 후에 Verdaccio가 적합하지 않다고 결론을 내 렸습니다. 프로세스를 중지하고 다음 명령으로 Verdaccio를 제거하십시오.
클라이언트 구성
레지스트리가 UP 및 실행중인 경우 NPM 클라이언트를 새 주소에 가리 려야합니다. 다음 명령을 실행하여 수행 할 수 있습니다.
이 기사의 단계를 따르고 나중에 원래 NPM 레지스트리로 복원하려면이 명령을 실행하려면이 명령을 실행하십시오. https://www.php.cn/link/c0ab525d634e80fd8e20e3dc00b11c ( https 기반 액세스의 경우) 또는 NPM 세트 레지스트리 https://www.php.cn/link/6baadc89159617043965f9e1889224e7 (클래식 http 액세스 용).
또한 HTTPS를 통해 레지스트리 서비스를 제공하는 경우 적절한 CA 정보를 설정해야합니다.
이제 주소 https://www.php.cn/link/0f3ea482c9513bf4548f302a46d932d 로 이동하여 레지스트리 브라우저에 액세스 할 수 있습니다.
<code># 安装 pm2
npm install pm2 -g
# 使用 pm2 启动 Verdaccio
pm2 start PATH-TO-GLOBAL-VERDACCIO/verdaccio
# --> 例如,对于 Windows:C:/Users/[USERNAME]/AppData/Roaming/npm/node_modules/verdaccio/bin/verdaccio</code>
로그인 후 복사
로그인 후 복사
사용자 정의 레지스트리 구성
서버가 시작되면 config.yaml이라는 새 구성 파일이 자동으로 생성됩니다. 기본적으로 사용자 폴더에서 생성됩니다. Windows에서는 다음과 같이 보일 수 있습니다
<code>npm uninstall -g verdaccio</code>
로그인 후 복사
중요한 설정은 Verdaccio 청취를위한 기본 포트를 구성하는 것입니다. 구성 파일 끝에서 다음 줄을 추가 하여이 설정을 변경할 수 있습니다.
<code># 安装 Angular2 依赖项
npm install @angular/core
# 安装 TypeScript 的官方 Node.js 类型定义
npm install @types/node</code>
로그인 후 복사
로그인 후 복사
로그인 후 복사
또 다른 관심 설정은 특히 기업 환경에서 프록시를 사용하는 것일 수 있습니다. 이 설정은 다음과 같습니다.
구성을 변경 한 후 현재 프로세스를 죽이거나 PM2 프로세스를 중지하여 다시 시작하여 Verdaccio를 다시 시작하십시오. <code>npm install -g verdaccio</code>
로그인 후 복사
로그인 후 복사
로그인 후 복사
등록 된 사용자
마지막으로 패키지를 레지스트리에 게시하는 사용자를 구성해야합니다. 우리는 사용자 정의 레지스트리를 가리키는 기본 adduser 명령을 사용하여이를 수행 할 수 있습니다.
그 후, 명령 줄의 프롬프트를 따르십시오.
앞에서 구성한 것과 동일한 포트를 사용해야합니다.
이 사용자는 Verdaccio 인스턴스에 대해 인증하는 데 사용됩니다. 위에서 언급 한 config.yaml 파일 외에도 로그인 이름과 자격 증명을 저장할 새로 생성 된 htpasswd 파일을 찾을 수 있습니다. <code># 安装 pm2
npm install pm2 -g
# 使用 pm2 启动 Verdaccio
pm2 start PATH-TO-GLOBAL-VERDACCIO/verdaccio
# --> 例如,对于 Windows:C:/Users/[USERNAME]/AppData/Roaming/npm/node_modules/verdaccio/bin/verdaccio</code>
로그인 후 복사
로그인 후 복사
첫 번째 개인 NPM 패키지
이제 우리는 첫 번째 개인 패키지를 만들 준비가되었습니다. 우리는 간단한 Hello-World 패키지를 만들어 게시 과정을 볼 것입니다.
패키지 만들기
먼저 Hello-World라는 새 폴더를 만듭니다. 이제 새 패키지를 시작해야하며 NPM init 명령을 사용하여이를 수행합니다. 많은 질문을받을 수 있지만 이제는 대부분의 질문이 기본값을 받아들입니다. 설명을 제공하고 INDEX.JS의 진입 점을 유지하고 저자로 이름을 추가하십시오. 결과는 패키지를 설명하는 package.json이라는 파일입니다.
좋은 관행은 패키지 이름을 접두사로 접두어 개인 로컬 소스 또는 공식 NPM 소스를 사용하고 있는지 즉시 알 수 있습니다.
다음 부분은 실제 패키지를 만드는 것입니다. 따라서 index.js 파일을 만듭니다. 이 간단한 예제는 helloworld 함수 만 내보낼 것입니다 :
릴리스 패키지
나머지는 이제 패키지를 해제 할 것입니다. 이를 위해서는 먼저 NPM 로그인을 사용하여 레지스트리에 로그인해야합니다. 이전에 설정 한 사용자 이름과 비밀번호를 입력하라는 메시지가 표시됩니다.
이 작업을 완료 한 후 Hello-World의 루트 디렉토리에서 NPM 게시를 실행하여 작업을 완료하십시오.
샘플 사용자 애플리케이션
이제 우리는 개인 패키지를 게시 했으므로 간단한 데모 애플리케이션을 만들어 봅시다.
새로운 폴더 데모에서는 NPM init을 다시 사용하여 새 노드 응용 프로그램을 만듭니다. 다시 말하지만, 모든 제안을 수락하고 설명과 저자 정보 만 추가 할 수 있습니다.
후에는 응용 프로그램의 루트 디렉토리 역할을하는 index.js 파일을 만듭니다.
프라이빗 패키지 설치
개인 패키지를 설치하려면 기본적으로 표준 NPM 프로세스와 동일한 작업을 수행해야합니다.
이것은 패키지를 node_modules 폴더에 설치하고 package.json의 종속성 섹션을 업데이트합니다.
위 내용은 Verdaccio와 함께 개인 NPM 패키지 호스트, 게시 및 관리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!