Menginstal ketergantungan dengan Bower dari URL dan tentukan versi

154

Saya mencoba menginstal ketergantungan dengan Bower menggunakan URL. Pada dokumentasi Bower:

Bower menawarkan beberapa cara untuk menginstal paket:

    # 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> 

Di mana <package>ada salah satu dari yang berikut ini:

  • Nama yang memetakan paket yang terdaftar di Bower, misalnya, jquery.
  • Titik akhir Git jarak jauh, misalnya git://github.com/someone/some-package.git,. Bisa publik atau pribadi.
  • Titik akhir lokal, yaitu folder yang merupakan repositori Git.
  • Titik akhir singkatan, misalnya, someone/some-package (default ke GitHub).
  • URL ke file, termasuk file zip dan tar. Isinya akan diekstraksi.

Namun, kemudian dikatakan, bahwa semua jenis kecuali URL memungkinkan untuk menentukan versi.

Bagaimana cara menentukan versi untuk ketergantungan yang diunduh URL?

Edmondo1984
sumber

Jawaban:

194

Gunakan git endpoint alih-alih nama paket:

bower install https://github.com/jquery/jquery.git#2.0.3
Sindre Sorhus
sumber
8
Ini adalah titik akhir Git, dan menentukan karya versi. Jika Anda menentukan misalnya file Javascript secara langsung, ini tidak berfungsi
Edmondo1984
1
URL diizinkan dengan versi bower terbaru.
lfender6445
BTW: bekerja dengan svnterlalu, misalnyabower install crypto-js=svn+http://crypto-js.googlecode.com/svn/#~3.1.2 --save
Preexo
5
jika Anda memiliki kesalahan ENORESTARGET URL sources can't resolve targetsketika mencoba menginstal dari git dengan committish, Anda harus mengubah https://github.com/jquery/jqueryke https://github.com/jquery/jquery.git(add .git)
jakub.g
2
Apakah bower menormalkan tag versi untuk membuatnya awalan dengan v? Ketika saya melakukannya bower install https://github.com/my/repo.git#1.0.0itu bekerja meskipun tag yang saya mendorong sebenarnya dipanggil v1.0.0.
spinningarrow
54

Jika Anda menggunakan file bower.json untuk menentukan dependensi Anda:

{
     "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",

     }
}

Hanya ingat bower juga mencari versi dan tag yang dirilis sehingga Anda dapat menunjuk ke hampir semua, dan dapat menginterpretasikan pola kueri dasar seperti contoh sebelumnya. yang akan mengambil pembaruan kecil terbaru versi 3.0 (diuji dari bower 1.3.5)

Perbarui , karena deskripsi pertanyaan juga menyebutkan hanya menggunakan URL dan tidak menyebutkan repositori github.

Contoh lain adalah menjalankan perintah ini menggunakan url yang diinginkan, seperti:

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

perintah yang mengunduh perpustakaan js Anda masukkan ke {path tujuan Anda} / gmap3MarkerWithLabel/index.js dan secara otomatis membuat entri dalam file bower.json Anda bernama gmap3MarkerWithLabel: "..." Setelah itu, Anda hanya dapat mengeksekusi bower update gmap3MarkerWithLabeljika diperlukan.

Lucunya jika Anda melakukan proses backwars (tambahkan entri secara manual di bower.json, kemudian instal bower entryName) itu tidak berfungsi, Anda mendapatkan

bower ENOTFOUND Package gmapV3MarkerWithLabel tidak ditemukan

le0diaz
sumber
++ RE peringatan tentang melakukan proses mundur
jacob
Pada 2018. Orang-orang harus menjauh dari bower, tidak dalam pengembangan lagi, dan menggunakan alat manajemen paket lain seperti Benang. Kami mengalami masalah karena banyak pengembang perpustakaan pihak ketiga berhenti merilis paket bower untuk digunakan dengan cara yang lebih baik. Benang jauh lebih cepat daripada bower dan sangat mudah untuk dimigrasi.
le0diaz
21

Menargetkan komit tertentu

Remote (github)

Saat menggunakan github, perhatikan bahwa Anda juga dapat menargetkan komit tertentu (misalnya, dari fork yang telah Anda buat dan perbarui) dengan menambahkan hash komit ke akhir url klonnya. Sebagai contoh:

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

Lokal (sistem file)

Atau Anda dapat menargetkan komit git di sistem file lokal Anda jika Anda menggunakan direktori .git proyek Anda, seperti itu (di Windows; perhatikan garis miring depan):

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

Ini adalah salah satu cara menguji kode perpustakaan yang Anda lakukan secara lokal tetapi belum didorong ke repo.

JcT
sumber
1
Terima kasih! Saya menggunakan komponen bower bercabang dua dengan patch, dan itu terus menginstal terbaru sesuai dengan file bower utama untuk repo itu. Menambahkan hash komit memungkinkan saya untuk mengunduh versi terbaru saya.
elliottregan
9

Hanya pembaruan.

Sekarang jika itu adalah repositori github maka hanya menggunakan singkatan github sudah cukup jika Anda tidak keberatan dengan versi tentu saja.

Singkatan GitHub

$ bower install desandro/masonry
Turdaliev Nursultan
sumber
7

Berikut cara mudah untuk menginstal tag tertentu atau melakukan dari GitHub via bower.json.

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

Sebagai contoh:

{
  "dependencies": {
    "custom-jquery": "jquery/jquery#2.0.3"
  }
}
F Lekscha
sumber
Hanya ingin tahu, apakah mungkin untuk menargetkan direktori tertentu dari repositori? [email protected]#v0.1.0/directory?
Rhys
7

Hanya menentukan titik akhir uri bekerja untuk saya , bower 1.3.9

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

Berjalan bower install, saya menerima output berikut:

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

Anda juga dapat mencoba memperbarui bower

  • npm update -g bower

Menurut dokumentasi : jenis url berikut didukung:

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
sumber
3

Saya percaya bahwa menentukan versi hanya berfungsi untuk git-endpoints. Dan tidak untuk folder / zip. Seperti ketika Anda mengarahkan bower ke file js / folder / zip, Anda sudah menentukan paket dan versi (kecuali untuk js). Karena sebuah paket memiliki bower.json dengan versi di dalamnya. Menentukan versi di 'bower install' masuk akal ketika Anda mengarahkan bower ke repositori yang dapat memiliki banyak versi paket. Bisa jadi hanya git saya pikir.

Shrike
sumber
3

Coba di bower install git://github.com/urin/jquery.balloon.js.git#1.0.3 --savemana 1.0.3nomor tag yang bisa Anda dapatkan dengan membaca tag di bawah rilis. Juga untuk menggantikan URL dengan git://agar sistem terhubung.

SACn
sumber
0

Instal paket dari git dan simpan ke blok dependensi bower.json Anda.

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

( --saveakan menyimpan versi nama paket dalam file bower.json di dalam blok dependensi).

Referensi

Shafeeq Diaz
sumber