troublesome
(Webpack/Babel FWIWを使用して)呼び出す既存のライブラリをインポートしようとしているこの状況があり、jQuery
モジュール構文を使用して解決しようとしているグローバル参照があります。
次の方法で、jquery をモジュールの「ローカル」スコープに正常にインポートしました。
import jQuery from 'jquery'
だから私は試しました:
import jQuery from 'jquery'
import 'troublesome'
jQuery is not a function
しかし、おそらく驚くべきことではありませんが、キックバックのようなものが得られますtroublesome.js
私もこれを試しました:
System.import('jquery')
.then(jQuery => {
window.jQuery = jQuery
})
import 'troublesome'
System.import
しかし、これは es6/2015 仕様から引き出された、いわゆる「モジュールローダー」仕様の一部であることが判明したため、Babel では提供されません。poly-fillがありますが、Webpack は への呼び出しを介して実行される動的インポートを管理できませSystem.import
ん。
しかし...次のようにindex.htmlでスクリプトファイルを呼び出すと:
<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/troublesome/troublesome.js"></script>
<script src="the-rest-of-my-js.js"></script>
への参照jQuery
は解決されてtroublesome.js
おり、問題はありませんが、スクリプト タグ ルートは webpack で管理されないため、避けたいと思います。
このようなシナリオに対処するための適切な戦略を推奨できる人はいますか?
アップデート
@TN1ck からのガイダンスにより、最終的にimports-loaderを使用して、Webpack 中心のソリューションを 1 つ特定することができました。
このソリューションの構成は次のようになります。
//...
module: {
loaders: [
//...
{
test: require.resolve('troublesome'),
loader: "imports?jQuery=jquery,$=jquery"
}
]
}