プロジェクトのインストールごとに異なる特別なscssファイルが必要なので、それをgitアーカイブに含めたくありません。ただし、このファイルが存在しなくても、すべてが機能するはずです。
ファイルが見つからないというエラーを無視して、存在する場合にのみscssファイルを@importする方法はありますか?
プロジェクトのインストールごとに異なる特別なscssファイルが必要なので、それをgitアーカイブに含めたくありません。ただし、このファイルが存在しなくても、すべてが機能するはずです。
ファイルが見つからないというエラーを無視して、存在する場合にのみscssファイルを@importする方法はありますか?
これを行うには、「import-path」オプションを使用する必要があります。インポートするパスには、インポートするフォールバック ファイルが含まれています (この場合、空のファイルが必要です)。
ファイル構造
├── fallback
├── _example.scss // <-- our blank file
├── _example.scss // <-- the file for the user to customize (optional)
├── style.scss
style.scss:
@import "example";
/* the rest of our styles */
sass コマンドを実行するときは、次のように記述します。
sass --watch ./css:./sass --load-path ./sass/fallback
フォールバック ディレクトリは、sass ディレクトリ内にある必要はありません。ファイル システム上の任意の場所に配置してください。
複数のプロジェクトでこの手法を使用している場合は、Compass 拡張機能を作成する方が少し便利であることに気付くかもしれません。ロードパスを自動的にセットアップします。拡張機能の作成について詳しくは、http: //compass-style.org/help/tutorials/extensions/をご覧ください。
おそらく、sass-globbingとオプション ファイルの命名規則では、特定の読み込み順序に従っています。
次のツリーを検討してください。
stackoverflow-14975341/
├── .gitignore
├── config.rb
├── css/
│ └── screen.css
└── sass/
├── optionals/
│ ├── .gitkeep
│ ├── _01_style.scss
│ └── _03_style.scss
└── screen.scss
これらのファイルで:
# config.rb
require 'sass-globbing'
sass_dir = 'sass'
css_dir = 'css'
relative_assets = true
と
// sass/screen.scss
@import "optionals/*";
と
// sass/optionals/_01_style.scss
.optional1 {
background-color: red;
}
と
// sass/optionals/_03_style.scss
.optional3 {
background-color: green;
}
そして、 の場合.gitignore
:
sass/optional/*
最後に、optional
フォルダーを保持するために、という名前の空のファイルを作成します.gitkeep
(ファイル名は重要ではありません)。
スタイルシートをコンパイルすると、Compassscreen.css
はファイル_02_style.scss
が見つからない場合でも を生成します。
// css/screen.css
/* line 1, ../sass/optionals/_01_style.scss */
.optional1 {
background-color: red;
}
/* line 1, ../sass/optionals/_03_style.scss */
.optional3 {
background-color: green;
}
インポートの追加パスに基づいてシステムを改善することは確かに可能です。