Cài đặt phụ thuộc với Bower từ URL và chỉ định phiên bản


154

Tôi đang cố gắng cài đặt một phụ thuộc với Bower bằng URL. Theo tài liệu của Bower:

Bower cung cấp một số cách để cài đặt các gói:

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

Trường hợp <package>có thể là một trong những điều sau đây:

  • Tên ánh xạ tới gói được đăng ký với Bower, ví dụ: jquery.
  • Một điểm cuối Git từ xa, ví dụ , git://github.com/someone/some-package.git. Có thể là công khai hoặc riêng tư.
  • Một điểm cuối cục bộ, tức là một thư mục là kho lưu trữ Git.
  • Một điểm cuối tốc ký, ví dụ, someone/some-package (mặc định là GitHub).
  • Một URL đến một tệp, bao gồm các tệp zip và tar. Nội dung của nó sẽ được trích xuất.

Tuy nhiên, sau đó nó nói rằng tất cả các loại ngoại trừ URL cho phép chỉ định một phiên bản.

Làm cách nào để chỉ định phiên bản cho URL phụ thuộc được tải xuống?

Câu trả lời:


194

Sử dụng điểm cuối git thay vì tên gói:

bower install https://github.com/jquery/jquery.git#2.0.3

8
Đây là điểm cuối Git và chỉ định phiên bản hoạt động. Nếu bạn chỉ định trực tiếp một tệp Javascript, thì tệp này không hoạt động
Edmondo1984

1
URL được cho phép với các phiên bản gần đây của Bower.
lfender6445

BTW: hoạt động với svnquá, ví dụbower install crypto-js=svn+http://crypto-js.googlecode.com/svn/#~3.1.2 --save
Preexo

5
nếu bạn gặp lỗi ENORESTARGET URL sources can't resolve targetskhi thử cài đặt từ git với một https://github.com/jquery/jqueryhttps://github.com/jquery/jquery.git.git
ủy ban

2
Có phải Bower bình thường hóa thẻ phiên bản để tiền tố nó với một v? Khi tôi làm bower install https://github.com/my/repo.git#1.0.0nó hoạt động mặc dù thẻ thực tế tôi đã đẩy được gọi v1.0.0.
spinningarrow

54

Nếu bạn sử dụng tệp bower.json để chỉ định các phụ thuộc của bạn:

{
     "dependencies": {
         ...
         "photo-swipe": "git@github.com: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",

     }
}

Chỉ cần nhớ Bower cũng tìm kiếm các phiên bản và thẻ được phát hành để bạn có thể trỏ đến hầu hết mọi thứ và có thể diễn giải các mẫu truy vấn cơ bản như ví dụ trước. sẽ tìm nạp bản cập nhật nhỏ mới nhất của phiên bản 3.0 (được thử nghiệm từ bower 1.3.5)

Cập nhật , như mô tả câu hỏi cũng đề cập đến việc chỉ sử dụng một URL và không đề cập đến kho lưu trữ github.

Một ví dụ khác là thực thi lệnh này bằng cách sử dụng url mong muốn, như:

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

lệnh đó tải xuống thư viện js của bạn đặt vào {đường dẫn đích của bạn} /gmap3MarkerWithLabel/index.js và tự động tạo một mục trong tệp bower.json của bạn được gọi là gmap3MarkerWithLabel: "..." Sau đó, bạn chỉ có thể thực thi bower update gmap3MarkerWithLabel nếu cần.

Điều thú vị nếu bạn thực hiện quá trình backwars (thêm thủ công mục nhập trong bower.json, sau đó cài đặt entryName bower) nó không hoạt động, bạn nhận được một

Bower ENOTFOUND Gói gmapV3MarkerWithLabel không tìm thấy


++ RE báo trước về việc thực hiện quá trình ngược
jacob

Kể từ năm 2018. Mọi người nên tránh xa Bower, không phát triển nữa và sử dụng bất kỳ công cụ quản lý gói nào khác như Sợi. Chúng tôi đã có vấn đề khi nhiều nhà phát triển thư viện bên thứ 3 ngừng phát hành các gói Bower để đi theo cách thức ổn định hơn. Sợi là cách nhanh hơn so với bower và thực sự dễ dàng để di chuyển.
le0diaz


21

Nhắm mục tiêu một cam kết cụ thể

Điều khiển từ xa

Khi sử dụng github, lưu ý rằng bạn cũng có thể nhắm mục tiêu một cam kết cụ thể (ví dụ: về một ngã ba bạn đã thực hiện và cập nhật) bằng cách thêm băm cam kết của nó vào cuối url nhân bản của nó. Ví dụ:

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

Tại địa phương (hệ thống tập tin)

Hoặc bạn có thể nhắm mục tiêu một cam kết git trong hệ thống tệp cục bộ của mình nếu bạn sử dụng thư mục .git của dự án, như vậy (trên Windows; lưu ý các dấu gạch chéo về phía trước):

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

Đây là một cách để kiểm tra mã thư viện mà bạn đã cam kết tại địa phương nhưng chưa được đẩy lên repo.


1
Cảm ơn! Tôi đã sử dụng một thành phần bower fork với một bản vá, và nó tiếp tục cài đặt mới nhất theo tệp bower chính cho repo đó. Thêm băm cam kết cho phép tôi tải xuống phiên bản mới nhất của mình.
elliottregan

9

Chỉ là một bản cập nhật.

Bây giờ nếu đó là một kho lưu trữ github thì chỉ cần sử dụng một tốc ký github là đủ nếu bạn không quan tâm đến phiên bản của khóa học.

Tốc ký GitHub

$ bower install desandro/masonry

7

Đây là một cách ngắn gọn tiện dụng để cài đặt một thẻ cụ thể hoặc cam kết từ GitHub thông qua bower.json.

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

Ví dụ:

{
  "dependencies": {
    "custom-jquery": "jquery/jquery#2.0.3"
  }
}

Vì tò mò, có thể nhắm mục tiêu một thư mục cụ thể từ kho lưu trữ không? git@git-url.git#v0.1.0/directory?
Rhys

7

Chỉ cần xác định điểm cuối uri làm việc cho tôi , cung cấp 1.3.9

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

Đang chạy bower install, tôi nhận được đầu ra sau:

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

Bạn cũng có thể thử cập nhật Bower

  • npm update -g bower

Theo tài liệu : các loại url sau được hỗ trợ:

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)

3

Tôi tin rằng phiên bản chỉ định chỉ hoạt động cho các điểm cuối git. Và không cho các thư mục / zip. Như khi bạn trỏ bower vào tệp js-file / thư mục / zip, bạn đã chỉ định gói phiên bản (ngoại trừ js thực sự). Bởi vì một gói có bower.json với phiên bản trong đó. Chỉ định một phiên bản trong 'bower install' có ý nghĩa khi bạn trỏ Bower vào kho lưu trữ có thể có nhiều phiên bản của một gói. Nó có thể chỉ là git tôi nghĩ.


3

Hãy thử bower install git://github.com/urin/jquery.balloon.js.git#1.0.3 --savevị 1.0.3trí số thẻ mà bạn có thể nhận được bằng cách đọc thẻ trong bản phát hành. Ngoài ra, để thay thế URL bằng cách git://để hệ thống kết nối.


0

Cài đặt gói từ git và lưu vào khối phụ thuộc bower.json của bạn.

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

( --savesẽ lưu phiên bản tên gói trong tệp bower.json bên trong khối phụ thuộc).

Tài liệu tham khảo

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.