web-dev-qa-db-fra.com

boussole: vous devez compiler des feuilles de style individuelles à partir du répertoire du projet

Il y a quelque temps, j'utilisais une boussole pour générer des feuilles de style à partir de sass pour un projet.

Récemment je suis retourné à ce projet. Je suis allé dans mon répertoire sass et ai fait "compass watch --debug.:." Cela a généré l’erreur "Vous devez compiler des feuilles de style individuelles à partir du répertoire du projet".

J'ai découvert qu'il n'y avait pas de config.rb dans le répertoire. Alors j'en ai recréé un. Cela ressemble à ceci: 

http_path = "/"
css_dir = "/css"
sass_dir = "/css"
images_dir = "/img"
javascripts_dir = "/js"
preferred_syntax = :sass

Cependant, toutes mes tentatives d'utilisation de compas entraînent la même erreur, quelles que soient les valeurs que je mets dans la configuration. 

Comment puis-je obtenir une boussole pour traiter réellement mon sass?

25
davedave

je viens de rencontrer ce problème aussi, et le commentaire d’Arnaud Valle… a déjà répondu à cette question.

Créer simplement un fichier config.rb ne fonctionnera pas, car Compass ne le reconnaît pas . La réponse consiste simplement à passer au répertoire de votre projet (racine), puis à exécuter

compass init

Cela vous créera alors un "travail" config.rb, et deux répertoires appelés sass, et stylesheets, dans le répertoire sass constitueront quelques fichiers scss de départ.

Si vous ne le souhaitez pas, ou si vous souhaitez utiliser différents répertoires, vous pouvez bien sûr maintenant modifier votre fichier config.rb fraîchement créé et en fonctionnement, et modifier vos répertoires (puis supprimer les anciens répertoires créés automatiquement)

Oh, et je suppose que votre js ne sera pas dans un dossier javascripts, alors éditez-le dans le fichier config.rb

En tout cas, ayant fait cela (ou pas), vous devriez alors pouvoir courir 

compass watch

et tout devrait être bon, c'est-à-dire que vos fichiers scss sont compilés en fichiers css

Comme une alternative que je n'ai pas essayée, mais théoriquement

compass compile [path/to/scss]

devrait fonctionner aussi, si vous ne voulez pas initier la boussole

Plus d'informations à retrouver dans la documentation de la boussole ici

et pour aller complètement au-dessus, si c'est quelque chose que vous rencontrez souvent et que vous détestez les valeurs par défaut, éditez/ajoutez ce qui suit à votre ~/.bash_profile

alias compass_init="compass init --syntax=sass --css-dir=css --javascripts-dir=js"
40
John Smith

J'ai généralement mon config.rb dans le répertoire de mon projet (ou racine) plutôt que dans le répertoire sass.

La structure des dossiers ressemblerait à ceci:

  • config.rb
  • --- css
  • --- sass

De plus, votre css_dir et sass_dir ont la même valeur, ce qui peut également entraîner votre problème.

4
Arnaud Valle

Supprimez le "/" devant vos noms de répertoire. 

Cette erreur se produit lorsque votre chemin source est incorrect. Dans votre cas, vos répertoires ont un "/" supplémentaire. Les supprimer devrait résoudre votre problème.

Comme d'autres l'ont déjà dit, créer un fichier config.rb avec compass init le corrigera également. 

Notez que Config.rb n’est pas nécessaire lorsque vous utilisez des coureurs Grunt ou similaires exécutant Compass. C'est peut-être ainsi que votre projet fonctionnait auparavant sans le fichier config.rb. Le coureur commence la boussole avec tous les chemins et toutes les options du fichier Gruntfile.js. Avoir des chemins/options dans Gruntfile et dans config.rb peut poser problème.

3
fsharp

Pour ceux qui cherchent à compiler SCSS sans créer un projet entier (par exemple, pour une page unique), vous pouvez juste créer un fichier config.rb, mais il nécessite au moins deux paramètres: css_dir et sass_dir. (touch- ce n'est pas suffisant). Un config.rb minimal:

css_dir='.';sass_dir='.'

Cela crée effectivement un projet de boussole dans le but de compiler des fichiers simples . Si vous souhaitez utiliser des sprites, etc., vous devrez inclure le reste des paramètres. En supposant que Compass puisse écrire dans le répertoire, il créera le répertoire .sass-cache une fois que vous aurez exécuté compass compile ou compass watch pour la première fois.

Il est également important de noter que les commandes de boussole doivent être exécutées à partir du répertoire avec config.rb, sinon vous obtiendrez cette erreur.

Enfin, si vous souhaitez simplement tirer parti des fonctionnalités simples du SASS (et non des composants de l’infrastructure Compass), le SASS simple est souvent plus simple:

sass --watch foo.scss:foo.css

0
Curtis Mattoon

J'ai rencontré le même problème avec gulp-compass-compile. Correction du problème en modifiant l'option srcDir (qui convertit l'option --sass-dir dans l'appel à la compilation Compas) pour la fonction compass de ./src/scss à src/scss. J'espère que ça aide quelqu'un.

0
Luixo

Si ce problème sous Windows 7 sous Symfony avec Gulp, je l’ai résolu en utilisant des chemins absolus comme celui-ci:

gulp.task('compass', function() {
gulp.src('c:/wamp/www/mnv/src/Mnv/Bundle/MnvBundle/Resources/public/sass/*.scss')
    .pipe(compass({
        config_file: 'c:/wamp/www/mnv/src/Mnv/Bundle/MnvBundle/Resources/public/config.rb',
        css: 'c:/wamp/www/mnv/src/Mnv/Bundle/MnvBundle/Resources/public/stylesheets',
        sass: 'c:/wamp/www/mnv/src/Mnv/Bundle/MnvBundle/Resources/public/sass'
    }))
    .pipe(gulp.dest('c:/wamp/www/mnv/web/css'));
 });
0
Razvan.432