2013-04-08 12 views
13

Udało mi się skonfigurować moją aplikację heroku z numerem grunt buildpack. Kiedy pchnę moją aplikację Node.js do heroku, uruchomi odpowiednie zadanie.Jak skonfigurować Gruntfile do korzystania z kompasu/sass na heroku?

Chciałbym użyć pakietu "grunt-contrib-compass" do kompilowania moich plików .scss. Ale to wymaga kompasu do wykonania i nie wiem, jak to uzyskać.

Sprawdziłem dokumentację heroku i widziałem numer outdated doc that describes setting up compass with ruby ... ale nie widziałem żadnej najnowszej dokumentacji umożliwiającej skonfigurowanie go za pomocą Node.js.

Wszelkie pomysły?

Odpowiedz

19

To było dużo dowiedzieć się, ale wreszcie udało mi się zmusić go do pracy. Musisz zainstalować Ruby razem z aplikacją Node.js, aby zainstalować odpowiednie klejnoty. This gist był bardzo pomocny i bardziej lub mniej opisuje to, co muszę zrobić.

Podsumowując, proces był:

  • Tworzenie plików .buildpacks, Gemfile i Gemfile.lock w katalogu projektu, o następującej treści:

.buildpacks

https://github.com/heroku/heroku-buildpack-ruby.git 
https://github.com/heroku/heroku-buildpack-nodejs.git 

Gemfile

source "http://rubygems.org" 
gem "sass" 

Gemfile.lock

GEM 
    remote: http://rubygems.org/ 
    specs: 
    sass (3.4.5) 

PLATFORMS 
    ruby 

DEPENDENCIES 
    sass 

nb. Używam tylko Sassa, nie Compass, ale domyślam się, że wszystko, co musisz zrobić, aby uzyskać kompas, to po prostu dodać gem "compass" do Gemfile i, np. compass (1.0.3) poniżej sass w pliku Gemfile.lock.

  • Dodaj multi buildpack do aplikacji:

    heroku config:add BUILDPACK_URL=https://github.com/ddollar/heroku-buildpack-multi.git

  • Wreszcie pchnąć te się Heroku i Ruby i Sass należy zainstalować obok aplikacji node.js, co pozwala na użycie zadania związane z sass.

+0

dzięki tak dużo!Uderzyłem w tę przeszkodę późno w nocy i miałem zamiar powrócić do mojego starego procesu budowania + wdrażania, ale ta odpowiedź działała przy pierwszej próbie. hooray! – Dominick

+0

Nie ma problemu! Powyższe - proste, choć wygląda z perspektywy czasu - zajęło mi dosłownie * dni *, aby dowiedzieć się. Bardzo się cieszę, że uratowałem komuś ból! –

+5

Myślę, że to jest prawidłowe podejście. jedno dodanie; pakiety multi-buildpacks są teraz obsługiwane bez żadnych zewnętrznych pakietów budujących: https://devcenter.heroku.com/articles/using-multiple-buildpacks-for-an-app –

0

mam moja aplikacja działa na Heroku użyciu grunt-sass zamiast grunt-contrib-sass. Aby zamienić je po prostu zrobić npm install --save grunt-sass a następnie zamienić na grunt-zadanie wszędzie tam, gdzie jest używany (np grunt.loadNpmTasks('grunt-sass') zamiast grunt.loadNpmTasks('grunt-contrib-sass')

Powiązane problemy