私はクライアントサイドプログラミングのために反応スターターキットを使用しています。それは反応とウェブパックを使用します。 index.htmlもhtmlでも編集することはできません。すべてのjsファイル。私の質問は、クラウドからベンダーのjs libをロードしたいのですが、どうすればいいですか?webpackを使用してCDNまたは外部ベンダーのjavascript libをhtmlファイルではなくjsファイルにロードする方法
htmlファイルで簡単に行うことができます。 <script src="https://forio.com/tools/js-libs/1.5.0/epicenter.min.js"></script>
ただし、jsファイルでは、インストールされているnpmパッケージのみが使用されます。上記のlibをhtmlファイルなしでインポートするにはどうすればよいですか?私はインポートを試して、彼らはローカルファイルのためにのみ動作する必要があります。
更新10/21/15 これまでのところ私は2つの方向を試しましたが、いずれも理想的ではありません。
- @minheqはい反応開始キットのHTMLファイルがあります。 src/components/Htmlのhtml.jsです。私はこのようにそこクラウドlibとそのすべての依存関係を置くことができます:
<div id="app" dangerouslySetInnerHTML={{__html: this.props.body}} />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="https://forio.com/tools/js-libs/1.5.0/epicenter.min.js"></script>
<script src="/app.js"></script>
<script dangerouslySetInnerHTML={this.trackingCode()} />
</body>
グッドニュースは、それが動作ですが、私は、JSファイルで他に何も何の輸入を必要としない、または必要としません。しかし、今では2つのjqueryライブラリが異なる方法でロードされています。 1つはここに、もう1つはnpmとwebpackを通して。私はそれが後で私にトラブルを与えるだろうかと思う。私が使用する反応ルーティングは、私が推測するサーバ側の負荷のために、ブラウザウィンドウにnoneホームパスを入力すると、私に「未定義の変数」エラーを与えます。だから、この解決法はあまり良くありません。
- ウェブパック外観機能を使用します。これは、linkと記載されています。既存のAPIをバンドルにインポートする場合は、アプリケーション用にexternalsオプションを使用することもできます。バンドルにCDN(別のタグ)からjqueryを使用したい場合でも(jquery)を必要としたい場合external:{externals:{jquery: "jQuery"}}と指定します。 しかし、私がいくつかの場所を見つけた文書は、これを正確に行う方法についてはすべて綿密です。これまでのところ、私はそれを使用して
<script src="https://forio.com/tools/js-libs/1.5.0/epicenter.min.js"></script>
をhtmlに置き換える方法を知らない。
あなたは '( 'jqueryの')'、外部 ' 'jqueryの' を必要としますか:「jQuery''、' NPM jqueryの--save'をインストールし、WebPACKの書き込みを持って '<スクリプトSRC =" HTTPS ://code.jquery.com/jquery-2.2.4.min.js "/>'(最新の最新版)をバンドルに入れるのではなく、htmlに入れてください。 –
[生産中のWebpackプロジェクトでCDNのライブラリを使用する方法](https://stackoverflow.com/questions/31575809/how-to-use-a-library-from-a-cdn-in) -a-webpack-project-in-production) – mastilver