ブラウザーでReactのランタイムバージョンを確認する方法はありますか?
__REACT_DEVTOOLS_GLOBAL_HOOK__.renderers.values().next()["value"]["version"]
ブラウザーでReactのランタイムバージョンを確認する方法はありますか?
__REACT_DEVTOOLS_GLOBAL_HOOK__.renderers.values().next()["value"]["version"]
回答:
React.version
あなたが探しているものです。
ただし、(私が知る限り)文書化されていないため、安定した機能ではない可能性があります(つまり、可能性は低いですが、将来のリリースで消えたり変更される可能性があります)。
例React
のスクリプトとしてインポート
const REACT_VERSION = React.version;
ReactDOM.render(
<div>React version: {REACT_VERSION}</div>,
document.getElementById('root')
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="root"></div>
React
モジュールとしてインポートされた例
import React from 'react';
console.log(React.version);
明らかに、React
モジュールとしてインポートする場合、グローバルスコープには含まれません。上記のコードは、たとえばwebpackを使用するなど、アプリの残りの部分とバンドルすることを目的としています。ブラウザーのコンソールで使用された場合は、実質的に機能しません(裸の入力を使用しています)。
この2番目の方法が推奨されます。ほとんどのウェブサイトはそれを使用します。create-react-appがこれを行います(舞台裏でwebpackを使用しています)。この場合、React
はカプセル化されており、通常、バンドルの外部(たとえば、ブラウザのコンソール)ではまったくアクセスできません。
version
プロパティをフェッチする必要があります。
Uncaught ReferenceError: require is not defined
andUncaught ReferenceError: React is not defined
コマンドラインから:
npm view react version
npm view react-native version
Chrome Dev Toolsまたは同等のツールを開きrequire('React').version
、コンソールで実行します。
これはFacebookなどのWebサイトでも機能し、使用しているバージョンを確認できます。
ReferenceError: require is not defined
React Devtoolsがインストールされていると、ブラウザーコンソールからこれを実行できます。
__REACT_DEVTOOLS_GLOBAL_HOOK__.renderers.forEach(r => console.log(`${r.rendererPackageName}: ${r.version}`))
これは次のようなものを出力します:
react-dom: 16.12.0
グローバルECMAScript変数がエクスポートされたかどうかは不明であり、html / cssが必ずしもReactを示しているとは限りません。.jsを見てください。
方法1:ECMAScriptを確認します。
バージョン番号は、react-domとreactの両方のモジュールによってエクスポートされますが、これらの名前はバンドルによって削除されることが多く、バージョンはアクセスできない実行コンテキスト内に隠されます。巧妙なブレークポイントで値を直接明らかにするか、ECMAScriptを検索できます。
方法2:DOMブレークポイントを使用します。
Inspect Element
Elements
ペインが表示されますBreak On… - subtree modifications
Sources
ペインを表示しますCall Stack
サブペインrender
エントリがあるはずです。これはReactDOM.render
render
。レンダーを呼び出すコードreact-dom
モジュールの輸出オブジェクト
version: "15.6.2"
。によってエクスポートされたすべての値react-dom
このバージョンはReact開発ツールにも挿入されていますが、私の知る限り、どこにも表示されません。
コンソールを開き、を実行しwindow.React.version
ます。
これは、SafariとChromeで0.12.2から16.2.0にアップグレードするときに機能しました。
create-react- appで作成したアプリの場合、バージョンを確認できました。
アプリはソースマップなしでデプロイされました。