gpt4 book ai didi

javascript - 如何使用 webpack4 正确拆分常见依赖项

转载 作者:行者123 更新时间:2023-11-30 09:24:37 25 4
gpt4 key购买 nike

我在配置 webpack4 以正确捆绑共享依赖项时遇到困难。

我的应用程序中有两个页面(Page1 和 Page2)。两者都需要 bootstrapjquery 以及名为 core 的自定义 JavaScript 应用。

第 2 页需要相同但还需要一个名为 my-applodash 的自定义 JavaScript 应用程序。

因为我的 core 应用程序将包含在所有页面中,所以我想在同一个包中包含 jquerybootstrap

由于 lodash 仅对运行 my-app 的页面是必需的,因此我想将该依赖项包含在 my-app 包中。

所以我这样设置我的应用程序:

webpack.config.js

const path = require('path');
const webpack = require('webpack');


module.exports = {
entry: {
'core': './src/core/index.js',
'my-app': './src/my-app/index.js'
},
output: {
filename: '[name].bundle.js',
path: path.resolve(__dirname, 'dist'),
},
resolve: {
alias: {
jquery: 'jquery/src/jquery',
}
},
plugins: [
new webpack.ProvidePlugin({
$: "jquery",
jQuery: "jquery"
}),
],
mode: 'development',
}

page1.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Page1</title>

<script src="dist/core.bundle.js"></script>
</head>
<body>
<h1>Page1</h1>
<span id="test"></span>
</body>
<script>
$(document).ready(function() {
$('#test').text('jQuery Works!');
});
</script>
</html>

page2.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Page1</title>

<script src="dist/core.bundle.js"></script>
<script src="dist/my-app.bundle.js"></script>

</head>
<body>
<h1>Page2</h1>
<span id="test"></span>
</body>
<script>
$(document).ready(function() {
$('#test').text('jQuery Works!');
});
</script>
</html>

(完整项目:https://github.com/LondonAppDev/webpack-split-example)

当我运行 npx webpack 时,它会创建 core.bundle.jsmy-app.bundle.js,但是 这两个都包括 jquery

是否可以将所有“全局”依赖项放入 core.bundle.js 中?

最佳答案

这里只需要记住一件事,使用 webpack 4,您不会将 vendor 脚本作为入口添加到您的 webpack.config 中,而只是将真正的入口脚本添加到您的应用程序中。WP 将使用默认设置为您的应用创建优化的捆绑输出。

您必须将 vendor 缓存组添加到您的配置中,以便将 jQuery、Lodash、Bootstrap、Popper 提取到一个单独的包中:

 optimization: {
splitChunks: {
cacheGroups: {
vendor: {
test: /node_modules/,
name: "vendor",
chunks: "all",
enforce: true
}
}
}
},

关于javascript - 如何使用 webpack4 正确拆分常见依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49652900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com