Làm thế nào để cài đặt trạng thái mới nhất (không được đánh dấu) của một repo bằng cách sử dụng Bower?


163

Tôi có một repo rất nhỏ trong đó tôi làm tất cả các công việc phát triển trong nhánh chính và sử dụng các thẻ làm điểm "ổn định" trong lịch sử.

Tôi đoán theo mặc định Bower dường như tìm nạp phiên bản được gắn thẻ mới nhất của một repo. Tôi đang cố gắng để có được cam kết gần đây nhất trong nhánh chính.

Tôi đã thử chạy tất cả những thứ này, theo mọi thứ tự có thể hiểu được:

bower cache-clean mypackage
bower install mypackage --force-latest
bower install mypackage --force --force-latest
bower install mypackage --force

Tôi cũng đã thử thêm latestvào tệp bower.json của mình:

"dependencies": {
  "mypackage": "latest"
}

Và sau đó chạy:

bower update mypackage

Không có vấn đề gì dường như luôn luôn có được trạng thái được gắn thẻ mới nhất.

Làm thế nào để tôi có được trạng thái mới nhất, cập nhật nhất, không bị chặn của dự án?


1
Tài liệu đầy đủ github.com/bower/bower.json-spec
Jaider

Câu trả lời:


220

Chỉ định git commit SHA thay vì phiên bản:

bower install '<git-url>#<git-commit-sha>'

Thí dụ:

bower install 'git://github.com/yeoman/stringify-object.git#d2895fb97d'

Bạn cũng có thể chỉ định một chi nhánh thay vì SHA, nhưng điều đó thường không được khuyến khích trừ khi nó đang được phát triển và bạn kiểm soát tất cả các bộ phận.


1
Ya, tôi đã đọc qua tất cả các cuộc thảo luận về tất cả những gì trong trình theo dõi vấn đề GH tối qua và đã cài đặt bower # 0.9.3-rc0. Bạn nói đúng thưa ngài. Cảm ơn!
Johnny

32
Đến bây giờ, bạn cũng có thể chỉ sử dụng <git-url>#<branch-name>thay vì thêm SHA-ID. Vì vậy, bạn cũng có thể sử dụng <git-url>#masterđể theo dõi các nhánh chính.
MKroehnert

3
Điều này dường như không hoạt động cho kho lưu trữ riêng của tôi mặc dù. Tôi đang cố gắng chỉ định id xác nhận. Nó trả về một lỗi "gây tử vong: tham chiếu không phải là cây:". Có vẻ như nó đang cố gắng tìm bản sửa đổi trong repit git của container.
Nilesh

1
Tôi đang nhận được cái chết: tham khảo không phải là một cây là tốt. Khá khó chịu.
Seiyria

Làm thế nào để bạn buộc cài đặt phiên bản cũ hơn trong gói.json nếu bạn đã có phiên bản mới hơn?
SuperUberDuper

112

Có, bạn có thể trỏ đến url git hoặc sử dụng tốc ký tên / repo (đối với repos github):

bower.json

{
  "name": "bower-test",
  "dependencies": {
    "dpm": "git@github.com:okfn/dpm.git",
    "docker-nmpjs": "terinjokes/docker-npmjs"
  }
}

Thêm trong các tài liệu

Như @roi đã lưu ý trong các nhận xét, bạn có thể sử dụng --savecờ để tự động thêm phụ thuộc vào bower.json, vdbower install terinjokes/docker-npmjs --save


1
và đang chọn một phiên bản có thể?
Tjorriemorrie

12
@Tjorriemorrie Có, bạn có thể làm theo <package>#<revision>.định dạng được liệt kê trong tài liệu. Vì vậy, để sử dụng phiên bản mới nhất của jQuery trong nhánh "chính", bạn sẽ làm: git@github.com:jquery/jquery.git#masterhoặc gọi jquery/jquery#mastertắt là.
Nick Tomlin

6
tôi muốn nói rằng bạn sẽ gặp may mắn hơn khi sử dụng cli để đưa nó vào bower.json của bạn ..... bower cài đặt terinjokes / docker-npmjs --save
Roi

1
Chúng tôi cũng có thể đề cập đến các bản phát hành / thẻ bằng cách sử dụng biểu tượng # như vậy -xyz-components": "git@github.sample.com:username/reponame.git#0.4.5
Nitin


17

Nếu bạn đang sử dụng tệp bower.json, bạn chỉ định phiên bản mới nhất của chi nhánh với một dòng trong các phụ thuộc hoặc devDependencies phù hợp với cấu hình dự án của bạn:

"angular-bootstrap": "git@github.com:angular-ui/bootstrap.git#bootstrap3",

Sau đó, khi bạn chạy bower installphiên bản mới nhất của chi nhánh đó được cài đặt. Đó sẽ là chi nhánh bootstrap3của angular-uiví dụ này.


Điều này hoạt động tại địa phương nhưng sẽ thất bại trên Heroku. Bạn nên sử dụng git://github.com/angular-ui/bootstrap.git#bootstrap3thay thế.
Michael Yagudaev 14/07/2015

13
bower install --save package-name#master

thêm điều này:

"dependencies": {
  "package-name": "master"
}

10

sử dụng bower.json:

"dependencies": {
    "jquery.slimscroll": "latest",
    "jQuery": "1.11",
    "fullPage.js": "git@github.com:overbyte/fullPage.js.git#1d6bbac3d4c3b1d3d7d4096cdbcabd1c3914393f",
}

Ở đâu

"[library name - in this case a forked version of fullpage.js]" : "[from git clone box in github][#commit number if required - without this you will get latest tagged version]"
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.