Làm cách nào để cập nhật bower.json với các gói đã cài đặt?


129

Trong dự án của tôi, tôi đã cài đặt bowercác thành phần mà không có tùy chọn lưu . Bây giờ, tôi muốn cập nhật bower.json?

Làm cách nào để cập nhật bower.json với các gói đã cài đặt?


2
Việc thiếu một bước một bước để làm điều này có vẻ như khá thiếu sót. Vì có lệnh gỡ cài đặt, có vẻ như chạy bower installmà không --saveluôn luôn khó hơn và không bao giờ dễ hơn.
Chris

1
Nếu bạn không có gì trong bower.json, chỉ cần xóa nó và gõ bower initvào bảng điều khiển của bạn.
Jean-Luc Barat

Câu trả lời:


146

Chỉ cần liệt kê các phụ thuộc của bạn:

bower list

Sau đó, bạn nên chạy tất cả lệnh cài đặt với param '--save' như thế này:

bower install bootstrap --save

Đó là một công việc khó khăn, nhưng nếu bạn có một ngàn phụ thuộc, bạn có thể tạo một kịch bản để tự động hóa nhiệm vụ.


Đây là một câu trả lời tuyệt vời. Cảm ơn!
jessegavin

1
Tôi thấy điều này có vấn đề với chỉ 10 gói, vì không rõ gói nào được tải xuống dưới dạng phụ thuộc của người khác, điều này khiến bower nhắc nhở về số phiên bản. Ngay cả với câu trả lời đúng, tệp bower.json kết quả cũng không hoàn toàn đúng. Tôi đã làm việc với câu trả lời của Sebastien, nó làm việc cho tôi.
gb2d

Các phụ thuộc chưa được khai báo trong bower.json được xác định bằng thẻ "không liên quan" trên bảng điều khiển.
otaviodecampos

135

Một mẹo nhỏ nếu bạn không muốn viết một kịch bản cho điều đó:

trước khi làm bất cứ điều gì đổi tên bower.json của bạn trong bower2.json chẳng hạn.

sau đó bạn có thể làm một:

$ bower init

(tự động tạo tệp bower.json).

lưu ý rằng tất cả các câu hỏi nên được điền sẵn với cấu hình hiện tại của bạn.

Khi nào nó sẽ hỏi bạn:

thiết lập các thành phần hiện được cài đặt như phụ thuộc? nói có

Bây giờ bạn có tất cả các phụ thuộc của mình trong tệp bower.json mới (và bạn có thể kiểm tra xem mọi thứ có đúng với bower2.json cũ không)


Tùy chọn đăng ký mà nó đề cập khi làm điều này là gì - tôi đã giả sử lệnh này sẽ chỉ làm một việc cục bộ. Tôi đã chọn giữ riêng tư với câu hỏi hữu ích đó nhưng muốn tìm hiểu điều đó có nghĩa là gì - có một loại đăng ký bower internet nào không. Tôi chỉ nghĩ rằng đây là cách Bower có thể thực hiện một kiểu cài đặt npm.
hạ cánh

2
@landed: đó sẽ là sổ đăng ký gói Bower ( bower.io/search ) HTH
CHO

Điều này đã không làm việc cho tôi vì bower.jsonkhông liệt kê angular:'1.5.5'. Điều này là do tôi đã angular-animatecài đặt và vì nó phụ thuộc vào angular 1.5.5Bower quyết định không đưa angularvào bower.json(xem xét nó sẽ cài đặt nó bằng mọi cách khi ai đó làm bower installđiều này bower.json). Đây sẽ là một vấn đề nếu ai đó remove angular-animatetừ bower.jsontrong trường hợp này bowersẽ không cài đặt angularquá kể từ khi nó không được liệt kê.
Akash

35

Một cách khó khăn là chạy bower list, tìm kiếm các gói có nhãn không liên quan và thêm các gói theo cách thủ công vào phần phụ thuộc trong bower.json.

Nếu có nhiều gói không liên quan , có thể dễ dàng khắc phục điều này hơn bằng cách chạy bower initvà trả lời để "đặt các thành phần hiện được cài đặt làm phụ thuộc?". Điều này sẽ lấy hiện tại của bạn bower.json, đọc nó và sau đó tạo một cái mới bằng cách sử dụng thông tin từ cái cũ. Vì vậy, trong trường hợp lý tưởng, bạn sẽ có cùng một tệp chỉ với các gói không liên quan được thêm vào.

Cảnh báo : Thứ nhất, có thể có một cái gì đó bị mất trong quá trình (ví dụ devDependecies). Thứ hai trong phiên bản cuối cùng của Bower (v1.2.7), điều này sẽ không lưu giữ thông tin các gói hiện tại! Tôi cảm thấy đó là một lỗi. Tuy nhiên, bạn có thể lưu tệp cũ và (thủ công) hợp nhất tệp đó với tệp được tạo.

Ngoài ra, bạn nên yêu cầu một tùy chọn hoặc một cái gì đó bằng cách mở một vấn đề bower vì điều này sẽ được nhiều nhà phát triển hoan nghênh.


3
Lưu ý: Bower 1.3.3 bảo tồn thông tin gói hiện tại.
Bill Keller

27

Bạn có thể sử dụng bower-check-update (bạn cần cài đặt node.js trên máy của mình):

bower-check-updates là một tiện ích tự động điều chỉnh bower.json với phiên bản mới nhất của tất cả các phụ thuộc

bower-check-update - là một nhánh của npm-check-update , vì vậy tất cả đều giống nhau nhưng cập nhật bower.json, thay vìpackage.json

npm install -g bower-check-updates
bower-check-updates -u
bower install 

Điều này sẽ cài đặt bower-check-updatestrên toàn cầu, vì vậy bạn có thể khởi chạy nó từ bất cứ đâu.

PS để biết thêm thông tin về npm-check-update xin vui lòng xem chủ đề này


Có lẽbower install
Ámon Tamás

@ ÁmonTamás bower installkhông cập nhật bower.json.
Sergei Panfilov

5
Tác giả của bower-check-update đã phản đối dự án ủng hộ npm-check-update, đã thêm hỗ trợ để cập nhật bower.json.
congusbongus 16/2/2016

2

Nếu không có nhiều gói Bower bạn đã cài đặt, hãy thử viết bower install [package_name] --save. Điều này sẽ chỉ cập nhật tệp bower.json của bạn.


0

Sau khi bower-check-updates -ubạn phải chạy bower installthay vìnpm install

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.