5

Trong gemfile, là có cách nào để nói với Bundler cái gì đó như:Telling Bundler để loại trừ đá quý nhất định từ cài đặt một viên ngọc đặc biệt của

gem 'twitter-bootstrap-rails', :exclude therubyracer 

tôi cần phải cài đặt twitter-bootstrap-ray nhưng nó tự động kéo therubyracer trong , do đó, bundle install không thành công và bootstrap không được bao gồm trong dự án vì đây là một máy Windows. Tôi đã cài đặt execjs để không có kết quả.

Tôi đã cố gắng liệt kê therubyracer trong quá trình sản xuất và bundle install --without production, cũng không có kết quả.

"therubyracer gem on windows" cũng là vấn đề này, nhưng không có đề xuất nào thay đổi lỗi tôi nhận được.

Chỉ cũ của tôi là "When I do "bundle update", I get an error from a gem not in my gemfile. How do I ignore this dependency?".

Trả lời

4

Không có tùy chọn cho điều này trong Bundler.

Vì vậy, bạn đang trái với các tùy chọn này:

  • Không sử dụng twitter-bootstrap-rails. Bạn chỉ có thể sao chép các tệp css và js đã biên dịch vào các thư mục thích hợp theo vendor/assets. Bạn sẽ mất khả năng thay đổi ít biến hơn. Hoặc bạn có thể sử dụng đá quý compass_twitter_bootstrap, sử dụng sass thay vì ít hơn.

  • Lấy người bảo trì của đá quý less để sử dụng execjs thay vì commonjstherubyracer. Nó có thể có nghĩa là tái cấu trúc đáng kể cho người bảo trì nếu có thể.

  • Sử dụng tùy chọn :platform trong Gemfile của bạn, để chỉ cài đặt trên OSX hoặc Linux. Sau đó, yêu cầu các bộ phận bạn có thể sử dụng bằng tay, mà không cần tải less. Điều này có thể sẽ không hoạt động.

+0

Cảm ơn bạn sir :) – JakeP

+1

Đó là khá khập khiễng :-(cơ hội Bất kỳ rằng Bundler sẽ có một loại trừ tính năng trong tương lai gần? –

+0

Wow, đây là terrrible. Vì vậy, nếu một người nào đó phụ thuộc vào một cái gì đó bạn 100% có thể xác minh không không được gọi, bạn còn lại với forking đá quý để loại bỏ các dòng từ gemfile để tránh sử dụng phụ thuộc đó. – duane

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