5

obrębie gemfile, czy jest jakiś sposób, aby powiedzieć Bundler coś takiego:powiem Bundler wykluczyć niektóre perełki z instalacji konkretnego gem

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

muszę zainstalować twitter-bootstrap barierkami ale automatycznie ściąga therubyracer w , więc bundle install kończy się niepowodzeniem i bootstrap nie jest zawarty w projekcie, ponieważ jest to maszyna z systemem Windows. Zainstalowałem execjs bez rezultatu.

Próbowałem wpisać therubyracer w produkcji i bundle install --without production, również na próżno.

"therubyracer gem on windows" to również ten problem, ale żadna z sugestii w nim nie zmienia błędu, który dostaję.

Mój stary wątek to "When I do "bundle update", I get an error from a gem not in my gemfile. How do I ignore this dependency?".

Odpowiedz

4

Nie ma opcji w Bundler.

Więc jesteś w lewo z tych opcji:

  • Nie używaj twitter-bootstrap-rails. Możesz po prostu skopiować skompilowane pliki css i js do odpowiednich katalogów pod vendor/assets. Stracisz możliwość zmiany mniejszej liczby zmiennych. Lub możesz użyć klejnotu compass_twitter_bootstrap, który używa sass zamiast mniej.

  • Pobierz opiekunem less gem używać execjs zamiast commonjs i therubyracer. Prawdopodobnie oznaczałoby to znaczące refaktoryzacje dla opiekuna (-ów), jeśli to w ogóle możliwe.

  • Użyj opcji :platform w Gemfile, aby zainstalować tylko w systemie OS X lub Linux. Następnie wymagaj części, których możesz użyć ręcznie, bez ładowania less. To prawdopodobnie nie zadziała.

+0

Dziękuję panie :) – JakeP

+1

To dość kulawy :-(jakaś szansa, że ​​będą miały Bundler wyklucza funkcję w najbliższej przyszłości? –

+0

Wow, to jest kompletny brak czystości. Więc jeśli ktoś zależy na czymś Ci 100% może zweryfikować czy nie daj się wezwać, pozostajesz z rozwidleniem klejnotu, aby usunąć linię z gemfile, aby uniknąć korzystania z tej zależności. – duane