私はプロジェクトを実装していますが、私が理解しているところによると、@use
はコードを使用するスタイルシート @use
にのみインポートし、他のスタイルシートにはインポートしません。
sass ドキュメント:
@use 読み込まれたメンバー (変数、関数、ミックスイン) は、それらを読み込んだスタイルシートにのみ表示されます。他のスタイルシートがそれらにアクセスしたい場合は、独自の @use ルールを記述する必要があります。
つまり、css にコンパイルされた sass のメインファイルである _b.scss
というファイルがあり、次にインポートした a.scss
というファイルがあります。 @use
経由で _b.scss
をインポートすると、a.scss
をインポートした project.scss
というファイルができます。この階層によれば、_b.scss
は project.scss
ではアクセスできないはずですが、CSS にコンパイルするときに project.scss
を置くと、私の CSS にファイルを作成するには、_b.scss
から scss コードをコンパイルします (ただし、project.scss
に @debug map-get($colors."red") のように記述すると、
エラーがスローされます) では、なぜこのようなことが起こるのでしょうか?
PS: 私は gulp
を使用して、scss と css をコンパイル、クリーンアップ、監視します。
あなた自身の引用に基づく (私の引用を強調):
これには スタイル ルール は含まれないことに注意してください。 Documentation によると、スタイル ルールは生成されたスタイルシートに引き続き「読み込まれます」:
したがって、
@use
は、スタイル ルールを出力する際に、表示される メンバー (変数、関数、ミックスイン) を分離するために使用されます。