2016-07-07 8 views
11

wiem jak zrobić zależność NPM z wersji GitHub:NPM zainstalować/uzależnienia od GitHub wydania Binary

"dependencies": { 
    "package-name": "user/repo#v1.0.0" 
} 

To miłe, ale chcę zainstalować specyficzny binarny z tej wersji .

Próbowałem

"dependencies": { 
    "package-name": "https://github.com/user/repo/releases/download/v1.0.0/bin.tgz" 
} 

Ale daje mi następujący błąd:

❯ npm install 
npm ERR! fetch failed https://github.com/user/repo/releases/download/v1.0.0/bin.tgz 
npm WARN retry will retry, error on last attempt: Error: fetch failed with status code 404 

binarne aktywa zwalniające exist outside of GitHub i korzystania AWS S3.

URL github.com/user/repo/releases/download/v1.0.0/bin.tgz jest przekierowanie z 302 stanu i nagłówka lokalizacji HTTP ustawiony https://github-cloud.s3.amazonaws.com/releases/XXX/XXX...

Gdy próbuję bezpośrednio z adresu URL S3 dostałem błąd ENAMETOOLONG (see NPM issue):

> npm install https://github-cloud.s3.amazonaws.com/releases/XXX/XXX... 
npm ERR! tarball.destroy is not a function 
npm WARN retry will retry, error on last attempt: Error: ENAMETOOLONG: name too long, open '/var/folders/pn/...... 

Pytania:

  • Dlaczego NPM nie jest llowing przekierowania?
  • Dlaczego 404?
  • Czy istnieje sposób powiązania zależności z NPM z binarnym archiwum wydania GitHub? W jaki sposób?

Moje kontekstu i potrzeb:

  • Mam prywatny repozytorium GitHub
  • Mój pakiet musi być zbudowany przed "wdrażania" (transpilation itp)
  • chcę aby "opublikować" plik tarballa tej kompilacji w mojej wersji GitHub i bezpośrednio odwoływać się do moich zależności od NPM
  • Używam usługi CI do budowania, tworzenia z archiwów i przesłać go obok GitHub zwolnić
  • chciałbym użyć GitHub zwalniającą binarny jako repozytorium NPM

Powiązane

Odpowiedz

1

Github prasowe są oparte na tagach Git.

"... Wersje są oparte na tagach Git ."

https://help.github.com/articles/creating-releases/

Aby określić wersję z Git URL, to odpowiednie, na przykład w postaci znacznika na końcu jako fragment URL przykład, w przypadku znaczników o nazwie 0.3.1.

"dependencies": { 
    "myprivatemodule": "[email protected]:...#0.3.1" 
} 

snipped część (...) powinny być wypełnione:

"myprivatemodule": "[email protected]:{owner}/{project}.git#0.3.1" 

, a inna reklam Format sukienka będzie potrzebny dostęp SSH nie jest dostępny:

"myprivatemodule": "git://github.com/{owner}/{project}.git#0.3.1" 

uprzejmie zaczerpnięte z: npm install from Git in a specific version

0

404 dlatego, że są prywatne repo i nie zawierają uwierzytelniania w adresie URL.

repo publiczny:

"agentframework": "https://github.com/agentframework/agentframework/releases/download/beta/agentframework-beta.tar.gz" 

prywatne repo:

  1. Utwórz prywatny dostęp tokena https://github.com/settings/tokens
  2. Stwórz własną proxy HTTP, aby pobrać dochodzić od wydania. https://developer.github.com/v3/repos/releases/#get-a-single-release-asset
  3. dodać adres URL serwera proxy HTTP do package.json

package.json

{ 
    "name": "test", 
    "version": "1.0.0", 
    "dependencies": { 
    "agentframework": "https://github.com/agentframework/agentframework/releases/download/beta/agentframework-beta.tar.gz" 
    } 
} 

BTW: Można użyć yarn install których użyłem w moich projektach

+0

można wyjaśnić w bardziej szczegółowo w jaki sposób skonfigurować serwer proxy http? – line72

Powiązane problemy