2015-03-04 14 views
10

Tôi có một dự án cha mẹ có chứa một mô-đun con. Mô-đun có bower.json riêng của nó, chỉ định phụ thuộc của mô-đun và .bowerrc chỉ định thư mục nào sẽ được tải xuống. Những phụ thuộc này được liên kết trong HTML mô-đun.Chỉ định vị trí của .bowerrc khi gọi bower install

Dự án mẹ sử dụng package.json để quản lý các phụ thuộc của nút.

Để ngăn chặn người dùng cần phải chạy cả hai npm install (đối với các phụ thuộc cha mẹ) và cd module, bower install, cd ../ (đối với các phụ thuộc mô-đun), tôi đã thêm một postinstall kịch bản để package.json:

"scripts": { 
    "postinstall" : "./node_modules/.bin/bower install ./module/ --config.directory=\"./module/public/bower_components\"" 
} 

Lưu ý rằng cách duy nhất mà tôi có thể nhận được Bower để cài đặt các phụ thuộc của mô-đun vào /module/public/bower_components là nêu rõ directory trong tập lệnh postinstall.

Tuy nhiên ./module/.bowerrc đã chứa thông tin này, vì vậy lý tưởng tôi muốn 'thực hiện' số bower install nhận thức được điều này. Điều này cũng sẽ làm cho package.json dễ bảo trì hơn và module di động hơn.

Tôi cũng đã thử chuyển phụ thuộc Bower và postinstall script vào mô-đun của tôi package.json, sử dụng móc postinstall trong các phụ huynh của package.json để chạy npm install trong thư mục module. Nhưng cách tiếp cận này kết thúc bằng mô-đun. phụ thuộc được tải xuống thư mục node_modules của phụ huynh.

Có cách nào tốt hơn để giải quyết vấn đề này không?

+0

Tại sao bạn cần hai người quản lý gói? Có lẽ bạn có thể dính vào npm? – Magomogo

+0

@GrimurD bạn có thể vui lòng chấp nhận câu trả lời nếu nó giải quyết được vấn đề này –

Trả lời

3

Cấu hình Bower sử dụng thứ tự ưu tiên sau để giải quyết cấu hình cho bản dựng.

Từ docs Chòi chơi tại http://bower.io/docs/config/

  • đối số CLI qua --config biến Môi trường
  • .bowerrc địa phương nằm trong thư mục làm việc hiện tại
  • Tất cả các file .bowerrc lên cây thư mục
  • tệp .bowerrc nằm trong thư mục chính của người dùng (~)
  • .bowerrc file nằm i n thư mục toàn cầu (/)

Trong trường hợp của bạn, bạn có thể đặt một tập tin .bowerrc trong thư mục tương tự như package.json nhưng cấu hình tất cả các thuộc tính với module prefix/công cộng để đi làm việc thiết lập của bạn.

Tôi thích ý tưởng của bạn về việc quản lý tất cả các phụ thuộc từ một nơi trong package.json.

Các vấn đề liên quan