しばらく前、私はコンパスを使用してプロジェクトのsassからスタイルシートを生成していました。
最近、私はそのプロジェクトに戻りました。私はsassディレクトリに行き、「compass watch --debug。:。」を実行しました。これにより、「プロジェクトディレクトリから個々のスタイルシートをコンパイルする必要があります」というエラーが生成されました。
ディレクトリにconfig.rbがないことを発見しました。だから私はそれを作り直した。次のようになります。
http_path = "/"
css_dir = "/css"
sass_dir = "/css"
images_dir = "/img"
javascripts_dir = "/js"
preferred_syntax = :sass
ただし、コンパスを使用しようとすると、設定にどの値を指定しても、同じエラーが発生します。
コンパスを取得して、実際にサッスを処理するにはどうすればよいですか?
この問題に出くわしたばかりで、すでにコメントで回答されています。しかし、わかりやすくするために、後で検索します。
コンパスが認識しないため、config.rbを作成するだけでは機能しません。答えは、プロジェクトディレクトリ(ルート)に切り替えてから実行するだけです
compass init
これにより、「作業用の」config.rbが作成され、sassディレクトリに2つのディレクトリsassとstylesheetsが作成され、scssファイルが開始されます。
それらが必要ない場合、または別のディレクトリを使用する場合は、もちろん、新しく作成した作業config.rbを編集し、ディレクトリを変更することができます(そして、自動的に作成された古いディレクトリを削除します)
ああ、私はあなたのjsがフォルダjavascriptsにないのではないかと思うので、config.rbでそれを編集してください
とにかくそれをした(またはしなかった)場合は、実行できるはずです
compass watch
そしてすべてが良いはずです、つまり、あなたのscssファイルはcssファイルにコンパイルされます
私が試したことのない代替として、しかし理論的には
compass compile [path/to/scss]
コンパスを初期化したくない場合も動作するはずです
詳細については、コンパスのドキュメントをご覧ください here
そして、これがあなたが頻繁にやっていることに気づき、デフォルトを嫌うものである場合、完全に上に行くには、あなたの〜/ .bash_profileに以下を編集/追加します
alias compass_init="compass init --syntax=sass --css-dir=css --javascripts-dir=js"
私は通常、sassディレクトリではなく、プロジェクトディレクトリ(またはルート)にconfig.rbを持っています。
フォルダー構造は次のようになります。
また、css_dirとsass_dirの値が同じであるため、問題が発生する可能性もあります。
ディレクトリ名の前にある「/」を削除します。
このエラーは、ソースパスが正しくない場合に発生します。あなたの場合、ディレクトリには余分な「/」があります。それらを削除すると問題が解決するはずです。
他の人が言ったように、compass init
でconfig.rbを作成するとそれも修正されます。
Gruntまたはコンパスを実行する同様のランナーを使用する場合、Config.rbは必要ないことに注意してください。それは、config.rbファイルなしでプロジェクトが以前実行されていた方法かもしれません。ランナーは、Gruntfile.jsのすべてのパスとオプションでコンパスを開始します。 Gruntfileとconfig.rbの両方にパス/オプションがあると、問題が発生する可能性があります。
プロジェクト全体を作成せずにSCSSをコンパイルする場合(たとえば、1回限りのページの場合)、can config.rbを作成するだけですが、少なくとも2つのパラメーターが必要です:css_dir
およびsass_dir
。 (touch
- ingだけでは不十分です)。最小限のconfig.rb
:
css_dir='.';sass_dir='.'
これにより、コンパスプロジェクトが効率的に作成されます単純なファイルをコンパイルするため。スプライトなどを使用する場合は、残りのパラメータを含める必要があります。コンパスがディレクトリに書き込みできると仮定すると、.sass-cache
またはcompass compile
を初めて実行すると、compass watch
ディレクトリが作成されます。
また、config.rb
を使用してディレクトリからコンパスコマンドを実行する必要があることに注意してください。そうしないと、このエラーが発生します。
最後に、単純なSASS機能(コンパスフレームワークコンポーネントではなく)を利用したい場合、ストレートSASSの方が簡単なことがよくあります。
sass --watch foo.scss:foo.css
gulp-compass-compile
を使用して同じ問題が発生しました。 srcDir
関数のcompass
オプション(コンパスコンパイル呼び出しで--sass-dir
オプションに変換)を./src/scss
からsrc/scss
に変更することで修正しました。それが誰かを助けることを願っています。
SymfonyとGulpを使用してWindows 7でこの問題が発生した場合、次のような絶対パスを使用して解決しました。
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'));
});