Webpackedアプリケーションで bootstrap-webpack モジュールをrequire
しようとしています。
バンドルされたjavascriptが次に以下をスローするため、jQueryが必要なようです。
キャッチされないReferenceError:jQueryが定義されていません
この問題を修正するには、jQueryがbootstrap-webpackモジュールの依存関係であることをwebpackに指定するにはどうすればよいですか?それはささいなことのように思えますが、私はそれを理解するのに苦労してきました。
追加しようとしました:
"jquery": "latest"
bootstrap-webpackのpackage.json
の依存関係に追加されましたが、これは機能しませんでした。 documentation は不完全であり、この問題について多くを見つけることができないようです。ささいなことですよね?助けて!
2つの可能な解決策があります。
ProvidePluginを使用します:指定された識別子のソースコードをスキャンし、指定されたモジュールへの参照に置き換えます。
_// webpack.config.js
module.exports = {
...
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery"
})
]
};
_
imports-loaderを使用します:require()
ステートメントのような準備を付加する可能性を提供します。
_// webpack.config.js
{
...
module: {
loaders: [
{ test: require.resolve("jquery"), loader: "imports?jQuery=jquery" }
]
}
}
_
その場合、前に_npm install imports-loader --save
_を実行する必要があります。
このgithubの問題 経由。
_expose-loader
_をインストールし、webpack-bootstrapが必要になる直前にrequire('expose?$!expose?jQuery!jquery');
をメインのエントリポイントに追加します。
これにより、ウィンドウにjQueryが設定され、どのファイルでもアクセスできるようになります。このメソッドに注意してください。すべてのファイルは、明示的に必要かどうかに関係なく、そのバージョンのjQueryにアクセスできます。