Làm thế nào để thay đổi thư mục thành phần mặc định của Bower?


475

Tôi đang thực hiện một dự án mới sử dụng Bower từ twitter. Tôi đã tạo ra một component.jsonđể duy trì tất cả sự phụ thuộc của tôi như jquery. Sau đó, tôi chạy bower installcài đặt mọi thứ trong một thư mục có tên components. Nhưng tôi cần cài đặt các thành phần trong một thư mục khác, vd public/components.

Tôi đã thử chỉnh sửa thành phần.j.j của mình thành:

{
  "name": "test",
  "version": "1.0.0",
  "directory": "public/",
  "dependencies": {
    "jquery": "*"
  }
}

hoặc là:

{
  "name": "test",
  "version": "1.0.0",
  "componentsDirectory": "public/",
  "dependencies": {
    "jquery": "*"
  }
}

như được hiển thị trong https://github.com/twitter/bower/pull/94 nhưng nó không hoạt động.

Câu trả lời:


930

Tạo tệp cấu hình Bower.bowerrc trong thư mục gốc của dự án (trái ngược với thư mục chính của bạn) với nội dung:

{
  "directory" : "public/components"
}

Chạy bower installlại.


4
Tôi thay đổi tôi chỉ có thể nhìn thấy The value of the json property from .bowerrc is no longer usedvà tôi đoán mọi thứ đều ổn với "directory"tài sản. Đúng? github.com/bower/bower/blob/master/CHANGELOG.md
Sergey Kishenin

11
Điều này không làm việc cho tôi. Hoạt động trong .bowerrc, nhưng không phải bower.json. Đây có vẻ như là một tính năng cơ bản như vậy ...
elliottregan

148
Tôi tò mò về lý do tại sao điều này sẽ không được đưa vào tệp bower.json. Đặc biệt nếu đó là một thiết lập cho mỗi dự án.
Hayden

8
Dựa trên các tài liệu, nó phải ở dạng .bowerrc chứ không phải bower.json. Lạ ... bower.io/#custom-install-directory
joemfb 21/03

20
Trong Windows, để tạo một tệp bắt đầu bằng ".", Chỉ cần tạo tệp có dấu ".". Nói cách khác, chỉ cần gọi nó là ".bowerrc."
PeteK68

76

Ngoài việc chỉnh sửa .bowerrcđể thiết lập đường dẫn cài đặt mặc định của bạn, bạn cũng có thể thiết lập đường dẫn cài đặt tùy chỉnh cho các loại tệp khác nhau.

Có một gói nút được gọi là bower-Installer cung cấp một lệnh duy nhất để quản lý các đường dẫn cài đặt thay thế.

chạy npm install -g bower-installer

Thiết lập bower.json của bạn

{
  "name" : "test",
  "version": "0.1",
  "dependencies" : {
    "jquery-ui" : "latest"
  },
  "install" : {
    "path" : {
      "css": "src/css",
      "js": "src/js"
    },
    "sources" : {
      "jquery-ui" : [
        "components/jquery-ui/ui/jquery-ui.custom.js",
        "components/jquery-ui/themes/start/jquery-ui.css"
      ]
    }
  }
}

Chạy lệnh sau: bower-installer

Điều này sẽ cài đặt components/jquery-ui/themes/start/jquery-ui.cssđể ./src/css, vv


4
Điều này có vẻ đầy hứa hẹn nhưng bower_componentsthư mục vẫn được tạo và điền. :(
Ben

Phiên bản nào của Bower?
lfender6445

dường như là bản chất của gói. bạn có thể mở một vấn đề ở đây github.com/blittle/bower-installer/issues hoặc viết một tập lệnh bash để xóa cài đặt bài đăng thư mục.
lfender6445

1
Tôi nghĩ rằng không có ý nghĩa. Tôi không muốn gói vẫn tải xuống toàn bộ git repo và các phụ thuộc và sau đó chỉ sao chép các tệp cụ thể cho tôi ... Tôi có thể tự mình nhấn Ctrl + C. Tôi hy vọng nó sẽ chỉ tải xuống các tập tin cụ thể cho tôi.
Alendorff

vâng tôi nghe bạn trong trường hợp này tôi chỉ là một .bowerrc và trỏ đến công khai / bower hoặc công khai / nhà cung cấp để giữ cho dự án đơn giản.
lfender6445

61

Tôi gặp vấn đề tương tự trên windows 10. Đây là điều đã khắc phục vấn đề của tôi

  1. Xóa bower_componentstrong thư mục gốc của bạn
  2. Tạo một .bowerrctập tin trong thư mục gốc
  3. Trong tập tin viết mã này {"directory" : "public/bower_components"}
  4. Chạy một bower install

Bạn sẽ thấy thư mục bower_components trong thư mục công cộng của bạn bây giờ


23

Một cái gì đó đáng nói ...

Như đã lưu ý ở trên bởi những người đóng góp khác, sử dụng .bowerrctệp có JSON

{ "directory": "some/path" }

là cần thiết - TUY NHIÊN, bạn có thể gặp sự cố trên Windows trong khi tạo tệp đó. Nếu Windows cung cấp cho bạn một thông báo yêu cầu bạn thêm " tên tệp ", chỉ cần sử dụng trình soạn thảo văn bản / IDE như Notepad ++.

Thêm JSON vào một tệp chưa được đặt tên, lưu nó dưới dạng .bowerrc - bạn thật tuyệt!

Có lẽ là một giả định dễ dàng, nhưng tôi hy vọng điều này sẽ cứu người khác những cơn đau đầu không cần thiết :)


18
Trong Windows, để tạo một tệp bắt đầu bằng ".", Chỉ cần tạo tệp có dấu ".". Nói cách khác, chỉ cần gọi nó là ".bowerrc."
PeteK68

bạn cũng có thể làm điều đó với git bash, chỉ cần gõ:echo >> .bowerrc
Leandro RR

7

Hãy thử đặt components.jsontệp vào publicthư mục của ứng dụng của bạn, thay vì thư mục gốc, sau đó chạy lại bower install... hãy thử điều này trong thư mục nhà ứng dụng của bạn:

cp components.json public
cd public
bower install

1
yup có thể là một cách, có một cách hợp pháp để làm điều đó? nhưng tôi vẫn coi đây là một câu trả lời
Adam Ramadhan

2
bạn có thể viết một tập lệnh bash bower.shđể thêm vào thư mục bạn muốn cài đặt, như 'public-thành
phần.json

2
Cả hai câu trả lời nghe có vẻ siêu hacky, chắc chắn là không mong muốn
Jay

-3

Xin chào tôi cùng một vấn đề và giải quyết theo cách này.

người dùng windows và vs tập tin .bowerrc.

trong cmd đi bất kỳ thư mục

cài đặt bất kỳ gói nào chứa tệp .bowerrc forexample

bower install angular-local-storage

plugin này chứa tệp .bowerrc. sao chép nó và đi đến dự án của bạn và dán tập tin này.

và trong studio trực quan - giải pháp thám hiểm - hiển thị tất cả các tệp và bao gồm tệp .bowerrc nhìn thấy dự án

tôi giải quyết theo cách này :)


bạn có thể sử dụng Cygwinhoặc Cmderthiết bị đầu cuối để tạo .bowerrctập tin.
Francis.TM

4
Chỉ cần tạo tệp với bất kỳ tên nào, sau đó mở PowerShell hoặc Command Prompt và đổi tên nó.
TrueWill

Bạn có thể tạo một tệp chấm trong các cửa sổ bằng cách chỉ định tên tệp là '.name.' - vẫn không có nhiều người biết điều này sau nhiều năm có sẵn này :)
Alex Paven
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.