Reactの現在のバージョンが実行時に開発か本番かを検出することは可能ですか?私はこのようなことをしたいです:
if (React.isDevelopment) {
// Development thing
} else {
// Real thing
}
回答:
これは、ビルドツール(webpack、browserify)でNodeの方法をエミュレートして公開するのが最適process.env.NODE_ENV
です。通常、prodでは「本番」に設定し、devでは「開発」(または未定義)に設定します。
したがって、コードは次のようになります。
if (!process.env.NODE_ENV || process.env.NODE_ENV === 'development') {
// dev code
} else {
// production code
}
設定方法については、envifyまたはwebpackでの環境依存変数の受け渡しを参照してください。
process is not defined
クライアントで。
process.env.NODE_ENV
、開発モードで「開発」されます。
process.env.NODE_ENV
が定義され、アプリ内のどこからでもアクセスできます。詳細については、Reactのドキュメントを参照してください。
私はヘルパーファイル(Typescript内)を使用しています:
import process from "process";
const development: boolean = !process.env.NODE_ENV || process.env.NODE_ENV === 'development';
export default function isDev(): boolean
{
return development;
}
それから他の場所で私はそれをこのように使用します:
import isDev from "./helpers/DevDetect";
if (isDev())
{
...
}
index.htmlからこれにアクセスしたかったので、webpackを取り出したり、追加のモジュールで構成したりすることのないソリューションが必要でした。
ソースは、上記のDavidの回答と、htmlファイルで環境変数を使用するためのcreate-react-appドキュメントです。
if ( ! '%NODE_ENV%' || '%NODE_ENV%' === 'development') {
// dev code
} else {
// production code
}
browserify
とenvify
。