Sassスタイルシートの追加
注:この機能は、
react-scripts@2.0.0
以降で使用できます。
一般的に、異なるコンポーネント間で同じCSSクラスを再利用しないことをお勧めします。たとえば、<AcceptButton>
および<RejectButton>
コンポーネントで.Button
CSSクラスを使用する代わりに、独自の.Button
スタイルを持つ<Button>
コンポーネントを作成し、<AcceptButton>
と<RejectButton>
の両方がレンダリングできることをお勧めします(ただし、継承はしません)。
このルールに従うと、多くの場合、mixinやネストなどの機能がコンポーネントの構成に置き換えられるため、CSSプリプロセッサの有用性が低下します。ただし、必要であればCSSプリプロセッサを統合できます。
Sassを使用するには、まずsass
をインストールします。
$ npm install sass
# or
$ yarn add sass
これで、src/App.css
をsrc/App.scss
に名前変更し、src/App.js
を更新してsrc/App.scss
をインポートできます。このファイルとその他のファイルは、拡張子が.scss
または.sass
でインポートされている場合、自動的にコンパイルされます。
Sassファイル間で変数を共有するには、Sassの@use
ルールを使用できます。たとえば、src/App.scss
およびその他のコンポーネントスタイルファイルには、変数定義を含む@use "./shared.scss";
を含めることができます。
これにより、次のようなインポートが可能になります。
@use 'styles/_colors.scss'; // assuming a styles directory under src/
@use '~nprogress/nprogress'; // loading a css file from the nprogress node module
注:上記のように、パスに
~
をプレフィックスとして付けることで、node_modules
からモジュールを解決できます。
sass
はSASS_PATH
変数もサポートしています。
指定したパスを基準としたインポートを使用するには、.env
ファイルをプロジェクトルートに追加し、SASS_PATH
環境変数に指定されたパスを指定します。複数のディレクトリを指定するには、path1:path2:path3
のようにコロンで区切ってSASS_PATH
に追加します。
注:Windowsオペレーティングシステムでは、パスをセミコロンで区切ります。
SASS_PATH=path1;path2;path3
ヒント:CSSモジュールでもこの機能を使用できます!
注:Flowを使用している場合は、
.flowconfig
でmodule.file_ext設定をオーバーライドして、.sass
または.scss
ファイルを認識するようにします。また、.js
、.jsx
、.mjs
、.json
ファイルのmodule.file_ext
のデフォルト設定を含める必要があります。[options]
module.file_ext=.js
module.file_ext=.jsx
module.file_ext=.mjs
module.file_ext=.json
module.file_ext=.sass
module.file_ext=.scss
注:LibSassとその上に構築されたパッケージ(Node Sassを含む)は非推奨です。Node Sassのユーザーは、
package.json
ファイルでnode-sass
をsass
に置き換えるか、次のコマンドを実行することで、Dart Sassに移行できます。$ npm uninstall node-sass
$ npm install sass
# or
$ yarn remove node-sass
$ yarn add sass