0
以下是我有: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>
我的問題是,下面的兩個webpack配置是否達到完全相同的結果?
[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] webpack.config.js(與ProvidePlugin)
const config = {
entry: {
a: './a.js',
b: './b.js',
vendor: [
'jquery',
],
},
plugins: [
new webpack.ProvidePlugin({
$: 'jquery',
}),
],
};
如果它們是什麼時候相似但不一樣?
此外,在b.js
,$.x
等於undefined
,這是否意味着$
引用了不同的jQuery對象?如果是這樣,我該如何讓它們引用相同的(全局)jQuery實例?