2013-09-29 9 views
7

Chcę dodać kompas do mojego istniejącego projektu. Chcę utrzymać moją obecną strukturę projektu, który wygląda tak (uproszczony):Kompas config.rb Lokalizacja

app/ 
build/  
|-compass/ 
assets/ 
|-css/ 
    |-scss 
|-js/ 
|-img/ 

więc chcę wszystkie moje pliki Sass pod \ aktywów \ css \ SCSS i chcę wyjście skompilowane pliki CSS do \ assets \ css.

Bieg:

compass create --bare --sass-dir "assets\css\scss" --css-dir "assets\css" 

tworzy plik config.rb Compass bezpośrednio pod moim korzenia.

Jednak chcę, aby plik był pod \ build \ compass.

  1. Jak mogę kontrolować, gdzie Compass tworzy plik config.rb?
  2. Dokumentacja kompasu mówi, że deklaracje w pliku config.rb (np. Css_dir, sass_dir itd.) Są względne względem ścieżki project_path. Gdzie mogę zdefiniować ścieżkę projektu?

Odpowiedz

3

Kompas tworzy plik config.rb w tym samym katalogu, w którym uruchomiono komendę. Ścieżka projektu znajduje się w miejscu, w którym znajduje się plik config.rb. Możesz umieścić config.rb w dowolnym miejscu, o ile dostosujesz ścieżki do swoich zasobów.

+0

Uruchamiam polecenie z katalogu głównego projektu i tam tworzony jest plik config.rb. Jeśli przeniesię plik, w jaki sposób kompas wie, dokąd go przeniosłem? Musi wiedzieć na przykład, aby uruchomić polecenie kompilacji. Ponadto, po przeniesieniu pliku, ścieżki tam zdefiniowane muszą pozostać względne w stosunku do miejsca, w którym uruchomiłem polecenie, a nie do nowej lokalizacji. Jak mogę po prostu przenieść plik? – elanh

+0

Uruchom 'sass watch' (lub skompiluj) z tego samego katalogu co plik config.rb – cimmanon

+2

Jest to bardzo mylące dla mnie. Dlaczego biblioteka oczekiwała, że ​​może użyć nazwy ogólnej, takiej jak "config" i umieścić ją w katalogu głównym? Staram się, aby to działało z ember-cli i zakupionym tematem, niejasne jest, jak integrować się z innymi narzędziami, które tworzą własne założenia. – aceofspades

1

Jest przykładem config.rb:

# Require any additional compass plugins here. 
require 'compass/import-once/activate' 

# Set this to the root of your project when deployed: 
http_path = "/" 
css_dir = "../../assets/css" 
sass_dir = "../../assets/css/scss" 

# You can select your preferred output style here (can be overridden via the command line): 
# output_style = :expanded or :nested or :compact or :compressed 
output_style = :expanded 

# To disable debugging comments that display the original location of your selectors. Uncomment: 
line_comments = false 

# Enable source map 
sourcemap = true 

iz tą ustawień config.rb, folder projekt powinien być podobne (jak napisałeś):

MyFolder 
├ app 
├ build 
│ └ compass 
│ └ config.rb 
└ assets 
    ├ css/ 
    │ └ scss/ 
    ├ js 
    └ img 

Jeśli don 't masz plik config.rb, po prostu utwórz nowy plik "config.rb" i skopiuj/wklej w konfiguracji, którą napisałem.

Otwórz terminal wchodzi w myfolder/build/kompasu, a następnie uruchomić komendę kompasu, jak: compass watch


Pamiętaj

Trzeba wykonać swoją komendę kompasu w tym samym folderze gdzie jest plik config.rb. Tak więc w tym przypadku w MyFolder/build/compass. W przeciwnym razie kompas nie działa.

-1

Nie rozumiem, dlaczego zaprojektowałbyś taki projekt ... Chodzi mi o to, dlaczego nie włożyć scss do kompilacji, a następnie wszystko w ramach zasobów można wdrożyć do produkcji?

A więc: 1. Running (od "APP" katalogu)

compass create build --http-pat="../" --sass-dir="compass/scss" --css-dir="../assets/css" --javascripts-dir="../assets/js" --images-dir="../assets/img" 

utworzy foldery i pliki projektu jako takiego:

app 
|-- build 
|  |--config.rb 
|  |-- compass 
|   |-- scss 
|-- assets 
|  |-- css 
|  |-- img 
|  |-- js 
  1. Ponownie, od wewnątrz katalogu aplikacji, uruchamianie :

compass config "build/config.rb" --http-pat="../" --sass-dir="compass/scss" --css-dir="../assets/css" --javascripts-dir="../assets/js" --images-dir="../assets/img"

po prostu utworzyć katalogu build d umieść plik konfiguracyjny z tymi wartościami.

+0

Dlaczego ma znaczenie, gdzie OP chce mieć swoje katalogi? Wygląda na to, że w ogóle nie odpowiadasz na pytanie. – cimmanon

+0

Moja odpowiedź działa doskonale. Jeśli chce, scss w folderze assets/css, OP musi tylko zmodyfikować --sass-dir. Moja odpowiedź jest odpowiednia dla więcej niż jednego scenariusza lub struktury folderów. –

+0

I moja uwaga dotycząca oddzielania wyników od twoich scss jest całkowicie poprawna! –