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?
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"
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:
De plus, votre css_dir et sass_dir ont la même valeur, ce qui peut également entraîner votre problème.
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.
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
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.
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'));
});