Zainstaluj konkretną gałąź z github za pomocą Npm

164

Chciałbym zainstalować program ładujący z github w moim projekcie przy użyciu npm

Obecnie utrzymują dwie wersje tego projektu, które są kompatybilne z wersją 1 i 2 pakietu webpack.

Chciałbym zainstalować wersję 1 . Jakiego polecenia npm powinienem użyć, aby to zainstalować?

Próbowałem użyć poniżej jednego, ale nie działa.

npm install git://github.com/shakacode/bootstrap-loader.git[#v1] --Save 
Sachin
źródło

Odpowiedzi:

253

W poleceniu, które wypróbowałeś, są dodatkowe nawiasy kwadratowe.

Aby zainstalować najnowszą wersję z v1oddziału, możesz użyć:

npm install git://github.com/shakacode/bootstrap-loader.git#v1 --save
aby nie
źródło
5
gdybyśmy musieli załączyć konkretną wersję. jak by to było z oddziałem?
Md_Zubair Ahmed,
2
@Md_ZubairAhmed Nazwa gałęzi w jego przykładzie akurat miała nazwę „v1” - mogłaby nazywać się inaczej, np. „Moja-gałąź” i zachowywać się w ten sam sposób.
Venryx
1
Jeśli chcesz zainstalować określone zatwierdzenie, możesz zrobić: npm install https://github.com/username/package#3d0a21ccGdzie 3d0a21ccjest pierwszych osiem znaków skrótu zatwierdzenia. Znalazłem tę odpowiedź tutaj
Derk Jan Speelman
61

Po prostu zrób:

npm install username/repo#branchName --save

np. (moja nazwa użytkownika to betimer)

npm i betimer/rtc-attach#master --save

// and what will appear in your package.json will be:
"rtc-attach": "github:betimer/rtc-attach#master"

O jednej rzeczy też chcę wspomnieć: nie jest dobrym pomysłem sprawdzanie w pliku package.json, czy serwer kompilacji automatycznie pobiera zmianę. Zamiast tego umieść npm i (pierwsze polecenie) w poleceniu budowania i pozwól serwerowi po prostu zainstalować i wymienić pakiet.

Xin
źródło
Jakaś szansa, że ​​mógłbyś to zrobić dla pakietu w ramach monorepo?
Paul Razvan Berg
@PaulRazvanBerg Tak, możesz to zrobićnpm install <folder>
Thilak Rao
Nie działa: npm i facebook / github.com/facebook/jest.git#master --save. Lub to: npm i facebook/[email protected]: facebook / jest.git # master --save. Nie działa też
Donato
@Donato Postępuj zgodnie ze wzorem z przykładu
Xin
@Xin to nie działa: npm i facebook / jest # master --save ERR! Nie można zainstalować github: facebook / jest # b5c7092687a265e3f4f2ba6f9787e47e8c6b9d5e: Brak nazwy pakietu
Donato
29

możesz podać wzór git, ponieważ wersja, przędza i npm są wystarczająco sprytne, aby rozwiązać z repozytorium git.

yarn add any-package@user-name/repo-name#branch-name

lub dla npm

npm install --save any-package@user-name/repo-name#branch-name
mkg
źródło
Nie działa. Spróbuj tego: npm i jest @ facebook / git @ github.com: facebook / jest.git # master
Donato
5

Innym podejściem byłoby dodanie następującego wiersza do package.jsonzależności:

"package-name": "user/repo#branch"

Na przykład:

"dependencies": {
    ... other dependencies ...

    "react-native": "facebook/react-native#master"
}

A następnie zrób npm installlubyarn install

Ilarion Halushka
źródło
2

Używam SSH do uwierzytelniania mojego konta GitHub i mam kilka zależności w moim projekcie zainstalowanych w następujący sposób:

"dependencies": {
  "<dependency name>": "git+ssh://[email protected]/<github username>/<repository name>.git#<release version | branch>"
}
Esteban Borai
źródło
2
Dziękuję Ci za to!
Alexey Strizhak
1

Musiałem umieścić adres URL w cudzysłowie, żeby zadziałało

npm install "https://github.com/shakacode/bootstrap-loader.git#v1" --save
user2643679
źródło
0

Wypróbowałem sugerowane odpowiedzi, ale działało tylko z tym podejściem przedrostkowym:

npm i github:user/repo.git#version --save -D
Artjom Kurapov
źródło
2
Dodaj wyjaśnienie wraz z odpowiedzią, w jaki sposób ta odpowiedź pomaga OP w naprawianiu bieżącego problemu
ρяσѕρєя K
-3

Dokument npm określa, że ​​po repo_url można określić tylko tag / wersję.

Oto dokument: https://docs.npmjs.com/cli/install

mEnE
źródło
4
Dokumenty wyraźnie stwierdzają, że #commitishjest to dozwolonenpm install <git remote url>
kͩeͣmͮpͥ ͩ