目次
はじめに
以下の記事を参考に、環境定数を用意してください。
https://reigle.info/entry/2022/08/20/100000reigle.info
環境毎のWebPackを修正する
以下のように、環境情報が取得できる環境定数を定義します。
※「ENV」の部分です。(既存のWebPackがある場合は、ENVのみ追加してください)
const webpack = require("webpack");
module.exports = (env) => {
return {
plugins: [
new webpack.DefinePlugin({
ENV: JSON.stringify(env),
}),
],
};
};
環境毎のCSSを作成する
環境定数と同じディレクトリに「[環境定数のファイル名].module.css」のルールに則って、CSSファイルを作成してください。
以下のようなファイル構成になるはずです。
┗ development.js ┗ development.module.css ┗ production.js ┗ production.module.css
「[環境定数のファイル名].module.css」には以下のように定数を定義します。
「:root {」の中が定数なので、任意で追加してください。
:root {
--sample-background-color: #d21919;
}
定義したCSS定数を読み込む
「src」配下の「index.tsx」を以下のように修正します。(index.tsxの内容は環境によって相違する場合があります。)
重要なのは、「require(../${ENV}.module.css);」の部分です。
ここで、環境毎のCSSファイルを読み込んでいます。
import React from "react";
import ReactDOM from "react-dom/client";
import "./index.css";
import App from "./App";
import reportWebVitals from "./reportWebVitals";
require(`../${ENV}.module.css`);
const root = ReactDOM.createRoot(
document.getElementById("root") as HTMLElement
);
root.render(
<React.StrictMode>
<App />
</React.StrictMode>
);
// If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals();
CSS定数を使用する方法
「var([定数名])」を使用することで、CSS定数を利用することができます。
以下のように定義が可能です。
.hoge {
background: var(--sample-background-color);
}