7

プロジェクトのインストールごとに異なる特別なscssファイルが必要なので、それをgitアーカイブに含めたくありません。ただし、このファイルが存在しなくても、すべてが機能するはずです。

ファイルが見つからないというエラーを無視して、存在する場合にのみscssファイルを@importする方法はありますか?

4

2 に答える 2

5

これを行うには、「import-path」オプションを使用する必要があります。インポートするパスには、インポートするフォールバック ファイルが含まれています (この場合、空のファイルが必要です)。

オプション 1: バニラサス

ファイル構造

├── 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 ディレクトリ内にある必要はありません。ファイル システム上の任意の場所に配置してください。

参照: SCSS はどのようにパーシャルを見つけますか?

オプション 2: コンパス拡張

複数のプロジェクトでこの手法を使用している場合は、Compass 拡張機能を作成する方が少し便利であることに気付くかもしれません。ロードパスを自動的にセットアップします。拡張機能の作成について詳しくは、http: //compass-style.org/help/tutorials/extensions/をご覧ください。

于 2013-02-20T13:16:07.507 に答える
2

おそらく、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;
}

インポートの追加パスに基づいてシステムを改善することは確かに可能です。

于 2013-02-20T11:36:48.503 に答える