Instalowanie zależności z Bower z adresu URL i określ wersję

154

Próbuję zainstalować zależność z Bower przy użyciu adresu URL. Według dokumentacji Bower:

Bower oferuje kilka sposobów instalowania pakietów:

    # Using the dependencies listed in the current directory's bower.json 
    bower install
    # Using a local or remote package 
    bower install <package>
    # Using a specific version of a package 
    bower install <package>#<version>
    # Using a different name and a specific version of a package 
    bower install <name>=<package>#<version> 

Gdzie <package>może być dowolna z poniższych:

  • Nazwa odwzorowująca pakiet zarejestrowany w Bower, np. Jquery.
  • Zdalny punkt końcowy Git, np git://github.com/someone/some-package.git. Może być publiczny lub prywatny.
  • Lokalny punkt końcowy, czyli folder będący repozytorium Git.
  • Skrócony punkt końcowy, np. someone/some-package (Domyślnie GitHub).
  • Adres URL do pliku, w tym pliki zip i tar. Jego zawartość zostanie wyodrębniona.

Jednak wtedy mówi się, że wszystkie typy oprócz adresu URL pozwalają określić wersję.

Jak określić wersję zależności pobierania adresu URL?

Edmondo1984
źródło

Odpowiedzi:

194

Użyj punktu końcowego git zamiast nazwy pakietu:

bower install https://github.com/jquery/jquery.git#2.0.3
Sindre Sorhus
źródło
8
To jest punkt końcowy Git i określanie wersji działa. Jeśli podasz na przykład plik Javascript bezpośrednio, to nie zadziała
Edmondo1984
1
Adresy URL są dozwolone w najnowszych wersjach bower.
lfender6445
BTW: działa svnteż, np.bower install crypto-js=svn+http://crypto-js.googlecode.com/svn/#~3.1.2 --save
Preexo
5
jeśli masz błąd ENORESTARGET URL sources can't resolve targetspodczas próby instalacji z gita z https://github.com/jquery/jqueryhttps://github.com/jquery/jquery.git.git
zatwierdzeniem
2
Czy bower normalizuje tag wersji, aby poprzedzić go znakiem v? Kiedy to robię bower install https://github.com/my/repo.git#1.0.0, działa, mimo że faktycznie pchnięty tag został wywołany v1.0.0.
spinningarrow
54

Jeśli używasz pliku bower.json do określenia swoich zależności:

{
     "dependencies": {
         ...
         "photo-swipe": "[email protected]:dimsemenov/PhotoSwipe.git#v3.0.x",

#bower 1.4 (tested with that version) can read repositorios with uri format

         "photo-swipe": "git://github.com/dimsemenov/PhotoSwipe.git#v3.0.x",

     }
}

Pamiętaj tylko, że bower wyszukuje również wydane wersje i tagi, abyś mógł wskazać prawie wszystko i mógł interpretować podstawowe wzorce zapytań, takie jak poprzedni przykład. który pobierze ostatnią drobną aktualizację wersji 3.0 (testowana z bower 1.3.5)

Zaktualizuj , ponieważ opis pytania wspomina również o użyciu tylko adresu URL i nie ma wzmianki o repozytorium github.

Innym przykładem jest wykonanie tego polecenia przy użyciu żądanego adresu URL, na przykład:

bower install gmap3MarkerWithLabel=http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerwithlabel/1.0/src/markerwithlabel.js -S

to polecenie pobiera twoją bibliotekę js umieszcza w {ścieżka docelowa} /gmap3MarkerWithLabel/index.js i automatycznie tworzy wpis w twoim pliku bower.json o nazwie gmap3MarkerWithLabel: "..." Następnie możesz wykonać tylko w bower update gmap3MarkerWithLabelrazie potrzeby.

Zabawne, jeśli wykonasz proces backwars (dodaj ręcznie wpis w bower.json, a następnie bower install entryName) to nie działa, otrzymasz

bower ENOTFOUND Nie znaleziono pakietu gmapV3MarkerWithLabel

le0diaz
źródło
++ RE Zastrzeżenie dotyczące wykonywania tego procesu wstecz
jacob
Począwszy od 2018 r. Ludzie powinni odejść od altany, nie być już w fazie rozwoju, i korzystać z dowolnego innego narzędzia do zarządzania pakietami, takiego jak Yarn. Mieliśmy problemy, ponieważ wielu niezależnych deweloperów bibliotek przestało wydawać pakiety bower, aby uzyskać lepszy, ustandaryzowany sposób. Przędza jest znacznie szybsza niż altana i naprawdę łatwa do migracji.
le0diaz
21

Kierowanie na określone zatwierdzenie

Zdalne (github)

Korzystając z github, pamiętaj, że możesz również kierować reklamy na określone zatwierdzenie (na przykład widelec, który utworzyłeś i zaktualizowałeś), dołączając jego skrót zatwierdzenia na końcu jego klonowanego adresu URL. Na przykład:

"dependencies": {
  "example": "https://github.com/owner_name/repo_name.git#9203e6166b343d7d8b3bb638775b41fe5de3524c"
}

Lokalnie (system plików)

Lub możesz wskazać zatwierdzenie git w lokalnym systemie plików, jeśli używasz katalogu .git projektu, na przykład (w systemie Windows; zwróć uwagę na ukośniki):

"dependencies": {
  "example": "file://C:/Projects/my-project/.git#9203e6166b343d7d8b3bb638775b41fe5de3524c"
}

Jest to jeden ze sposobów testowania kodu biblioteki, który został zatwierdzony lokalnie, ale jeszcze nie został przesłany do repozytorium.

JcT
źródło
1
Dzięki! Używałem rozwidlonego komponentu altany z poprawką i instalowałem najnowsze zgodnie z głównym plikiem altowy dla tego repozytorium. Dodanie skrótu zatwierdzenia umożliwiło mi pobranie mojej najnowszej wersji.
elliottregan
9

Tylko aktualizacja.

Jeśli jest to repozytorium github, wystarczy użyć skrótu github, jeśli oczywiście nie masz nic przeciwko wersji.

Skrót do GitHub

$ bower install desandro/masonry
Turdaliev Nursultan
źródło
7

Oto przydatny, krótki sposób na zainstalowanie określonego tagu lub zatwierdzenie z GitHub za pośrednictwem bower.json.

{
  "dependencies": {
    "your-library-name": "<GITHUB-USERNAME>/<REPOSITORY-NAME>#<TAG-OR-COMMIT>"
  }
}

Na przykład:

{
  "dependencies": {
    "custom-jquery": "jquery/jquery#2.0.3"
  }
}
F Lekschas
źródło
Tak z ciekawości, czy możliwe jest kierowanie na określony katalog z repozytorium? [email protected]#v0.1.0/directory?
Rhys
7

Samo określenie punktu końcowego uri zadziałało dla mnie , bower 1.3.9

  "dependencies": {
    "jquery.cookie": "latest",
    "everestjs": "http://www.everestjs.net/static/st.v2.js"
  }

Uruchomiono bower install, otrzymałem następujące wyjście:

bower new           version for http://www.everestjs.net/static/st.v2.js#*
bower resolve       http://www.everestjs.net/static/st.v2.js#*
bower download      http://www.everestjs.net/static/st.v2.js

Możesz także spróbować zaktualizować altanę

  • npm update -g bower

Zgodnie z dokumentacją : obsługiwane są następujące typy adresów URL:

http://example.com/script.js
http://example.com/style.css
http://example.com/package.zip (contents will be extracted)
http://example.com/package.tar (contents will be extracted)
lfender6445
źródło
3

Uważam, że określenie wersji działa tylko w przypadku punktów końcowych git. A nie dla folderów / zip. Gdy wskażesz bower na plik js / folder / zip, już określiłeś pakiet i wersję (z wyjątkiem js rzeczywiście). Ponieważ pakiet zawiera plik bower.json z wersją. Określenie wersji w 'bower install' ma sens, gdy kierujesz bower do repozytorium, które może mieć wiele wersji pakietu. Myślę, że to tylko drań.

Dzierzba
źródło
3

Spróbuj, bower install git://github.com/urin/jquery.balloon.js.git#1.0.3 --savegdzie 1.0.3jest numer tagu, który można uzyskać czytając tag pod wydaniami. Również dla adresu URL zamień git://na, aby system mógł się połączyć.

SACn
źródło
0

Instaluje pakiet z git i zapisuje go w bloku zależności bower.json.

  1. bower register package-name git-endpoint#version
  2. install package-name --save

( --savezapisze wersję nazwy pakietu w pliku bower.json wewnątrz bloku zależności).

Odniesienie

Shafeeq Diaz
źródło