2017-02-28 28 views
2

webpackのbundle.jsがReactDOM(そしておそらく他の変数)をタグに公開するように苦労しています...これにはちょっとしたトリックがありますか?Webpack:変数をスクリプトタグに公開する

jqueryでこれを行いましたが、それは実際に行く方法ですか? :

$ = require('jquery'); 
window.jQuery = $; 
window.$ = $; 
+1

アプリケーションが複数のファイル/モジュールに分割された場合、必要な正確なコンポーネントを 'window.abc'に公開するのが正しい方法かもしれません。私は、必要がない限り 'window'要素を公開しないことを提案しました。 – Sairam

答えて

0

これは、あなたが欲しいものを行うには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を使用パッケージ。

関連する問題