web-dev-qa-db-ja.com

compass:プロジェクトディレクトリから個々のスタイルシートをコンパイルする必要があります

しばらく前、私はコンパスを使用してプロジェクトのsassからスタイルシートを生成していました。

最近、私はそのプロジェクトに戻りました。私はsassディレクトリに行き、「compass watch --debug。:。」を実行しました。これにより、「プロジェクトディレクトリから個々のスタイルシートをコンパイルする必要があります」というエラーが生成されました。

ディレクトリにconfig.rbがないことを発見しました。だから私はそれを作り直した。次のようになります。

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

ただし、コンパスを使用しようとすると、設定にどの値を指定しても、同じエラーが発生します。

コンパスを取得して、実際にサッスを処理するにはどうすればよいですか?

25
davedave

この問題に出くわしたばかりで、すでにコメントで回答されています。しかし、わかりやすくするために、後で検索します。

コンパスが認識しないため、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"
40
John Smith

私は通常、sassディレクトリではなく、プロジェクトディレクトリ(またはルート)にconfig.rbを持っています。

フォルダー構造は次のようになります。

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

また、css_dirとsass_dirの値が同じであるため、問題が発生する可能性もあります。

4
Arnaud Valle

ディレクトリ名の前にある「/」を削除します。

このエラーは、ソースパスが正しくない場合に発生します。あなたの場合、ディレクトリには余分な「/」があります。それらを削除すると問題が解決するはずです。

他の人が言ったように、compass initでconfig.rbを作成するとそれも修正されます。

Gruntまたはコンパスを実行する同様のランナーを使用する場合、Config.rbは必要ないことに注意してください。それは、config.rbファイルなしでプロジェクトが以前実行されていた方法かもしれません。ランナーは、Gruntfile.jsのすべてのパスとオプションでコンパスを開始します。 Gruntfileとconfig.rbの両方にパス/オプションがあると、問題が発生する可能性があります。

3
fsharp

プロジェクト全体を作成せずに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

0
Curtis Mattoon

gulp-compass-compileを使用して同じ問題が発生しました。 srcDir関数のcompassオプション(コンパスコンパイル呼び出しで--sass-dirオプションに変換)を./src/scssからsrc/scssに変更することで修正しました。それが誰かを助けることを願っています。

0
Luixo

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'));
 });
0
Razvan.432