は、私が持っているものです。webpack - imports-loaderとProvidePlugin:同様ですが同じではありませんか?ここ
a.js
$(() => {
$.x = 42;
console.log('hello from a');
});
b.js
$(() => {
console.log($.x);
console.log('hello from b');
});
index.htmlを
<!DOCTYPE html>
<meta charset="utf-8">
<body>
<script src="/vendor.js"></script>
<script src="/a.js"></script>
<script src="/b.js"></script>
私の質問は、以下の両方のウェブパック構成はまったく同じ結果を達成するのですか?
[1](インポート・ローダ付き)webpack.config.js
const config = {
entry: {
a: './a.js',
b: './b.js',
vendor: [
'jquery',
],
},
module: {
rules: [
{
test: /(a|b)\.js$/,
use: 'imports-loader?$=jquery',
},
],
},
};
を[2](ProvidePluginで)webpack.config.js
const config = {
entry: {
a: './a.js',
b: './b.js',
vendor: [
'jquery',
],
},
plugins: [
new webpack.ProvidePlugin({
$: 'jquery',
}),
],
};
場合、それらは同じではありませんが、同じものではありません。
はまた、b.js
に、$.x
は、undefined
に等しく、これは$
異なるjQueryのオブジェクトを指す意味しますか?もしそうなら、どうすれば同じ(グローバル)jQueryインスタンスを参照できるのでしょうか?