webpackのbundle.jsがReactDOM(そしておそらく他の変数)をタグに公開するように苦労しています...これにはちょっとしたトリックがありますか?Webpack:変数をスクリプトタグに公開する
jqueryでこれを行いましたが、それは実際に行く方法ですか? :
$ = require('jquery');
window.jQuery = $;
window.$ = $;
webpackのbundle.jsがReactDOM(そしておそらく他の変数)をタグに公開するように苦労しています...これにはちょっとしたトリックがありますか?Webpack:変数をスクリプトタグに公開する
jqueryでこれを行いましたが、それは実際に行く方法ですか? :
$ = require('jquery');
window.jQuery = $;
window.$ = $;
これは、あなたが欲しいものを行うには1つのきれいな方法です:
は、出力htmlページにCDN(またはあなたからReactDOMを取得したい場所)にリンクReactDOMためのスクリプトタグを含めます: <script src="https://unpkg.com/[email protected]/dist/react-dom.min.js"></script>
はWebPACKの今ReactDOMではなくWebPACKのは、プロジェクトディレクトリで見つけることができる何かの外部ソースから来ることをできるようにあなたのWebPACKの設定でexternals
プロパティを使用します。この場合、あなたのwebpack.config.js
に:
module.exports = {
// other configs
externals: {
'react-dom': 'ReactDOM'
}
}
コロンの左側の名前は、コード内でReactDOMを参照する方法です。右側のものは、パッケージが添付するグローバル変数であるwindow
です。 bundle.js
中にあなたのコードで
、import
ReactDOM次のように:あなたのコードで
import * as ReactDOM from 'react-dom'
をバンドル外に、あなたが任意のUMDには、このアプローチを一般化することができ、グローバル変数
ReactDOM.render(/*some component */)
としてReactDOMを使用パッケージ。
アプリケーションが複数のファイル/モジュールに分割された場合、必要な正確なコンポーネントを 'window.abc'に公開するのが正しい方法かもしれません。私は、必要がない限り 'window'要素を公開しないことを提案しました。 – Sairam