コンパイルされたbase.cssファイルと、いくつかのページ固有の css ファイルを生成するコンパス タスクを grunt で実行しています。base.scss @import は_settings.scssパーシャルをインポートします。これは、すべてのファイルのグローバル セットアップを指示します。
compass: {
theme: {
options: {
sassDir: '/sass',
cssDir: 'css',
fontsPath: 'css/fonts',
imagesPath: 'img'
}
}
}
コンパスタスクを複数回呼び出すことができるようにしたいのですが、毎回異なる設定ファイルが base.scss にインポートされ、出力に異なるcssDirを使用することが規定されています。これは達成可能ですか?
私は、2 つの異なるコンパス タスクで (raw 経由で) コンパス config.rb に基本的に追加することを含む以下のアプローチを使用しようとしました。各タスクには、設定ファイルを含むディレクトリへの異なるインポート パスが含まれています。この設定ファイルは、base.scss の先頭にある@import settings.scssとして取得されます。
compass: {
theme: {
options: {
httpPath: '/',
sassDir: '/sass',
cssDir: 'css',
raw: 'add_import_path "/sass/theme"'
}
},
theme2: {
options: {
httpPath: '/',
sassDir: '/sass',
cssDir: 'css',
raw: 'add_import_path "/sass/theme2"'
}
}
}
これは機能しているように見えますが、ハックのように感じますが、実用的なソリューションに最も近いものです。これを行う方法があるはずですが、これまでのところ解決策は私にほのめかしています。
registerTask() を使用して、ここで見つけたようなアプローチで必要な機能を作成できるかどうか疑問に思っています。