返回顶部
首页 > 资讯 > 精选 >webpack中的optimization怎么配置
  • 944
分享到

webpack中的optimization怎么配置

2023-07-05 05:07:34 944人浏览 八月长安
摘要

本篇内容主要讲解“webpack中的optimization怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“WEBpack中的optimization怎么配置”吧!webpack配置opt

本篇内容主要讲解“webpack中的optimization怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习WEBpack中的optimization怎么配置”吧!

webpack配置optimization

  • minimizer

  • runtimeChunk

  • noEmitOnErrors

  • splitChunks

主要就是根据不同的策略来分割打包出来的bundle。

本人项目中splitChunks配置如下:

module.exports = {                    chainWebpack(config) {                        config.when(process.env.node_ENV != 'development',                            config => {                                config.optimization.splitChunks({                                    chunks: 'all',                                    cacheGroups: {                                        // 第三方组件                                        libs: {                                            指定chunks名称                                            name: 'chunk-libs',                                            //符合组的要求就给构建venders                                            test: /[\\/]node_modules[\\/]/,                                            //priority:优先级:数字越大优先级越高,因为默认值为0,所以自定义的一般是负数形式,决定cacheGroups中相同条件下每个组执行的优先顺序。                                            priority: 10,                                            // 仅限于最初依赖的第三方                                            chunks: 'initial'                                        },                                        elementUI: {                                            // 将elementUI拆分为单个包                                            name: 'chunk-elementUI',                                            // 重量需要大于libs和app,否则将打包到libs或app中                                            priority: 20,                                            // 为了适应cnpm                                            test: /[\\/]node_modules[\\/]_?element-ui(.*)/                                        },                                        //公共组件                                        commons: {                                            name: 'chunk-commons',                                            // can customize your rules                                            test: resolve('src/components'),                                            minChunks: 3,                                            priority: 30,                                            //这个的作用是当前的chunk如果包含了从main里面分离出来的模块,则重用这个模块,这样的问题是会影响chunk的名称。                                            reuseExistinGChunk: true,                                            //最大初始化加载次数,一个入口文件可以并行加载的最大文件数量,默认3                                            maxInitialRequests: 3,                                            //表示在分离前的最小模块大小,默认为0,最小为30000                                            minSize: 0                                        },                                        echarts: { // split echarts libs                                            name: 'chunk-echarts',                                            test: /[\\/]node_modules[\\/]_?echarts(.*)/,                                            priority: 40,                                            chunks: 'async',                                            reuseExistingChunk: true                                        },                                        monaco: { // split monaco libs                                            name: 'chunk-monaco',                                            test: /[\\/]node_modules[\\/]_?monaco(.*)/,                                            priority: 40,                                            chunks: 'async',                                            reuseExistingChunk: true                                        },                                        'project-components': { // split project libs                                            name: 'chunk-project-components',                                            test: resolve('src/views/project'),                                            priority: 50,                                            chunks: 'async',                                            reuseExistingChunk: true                                        },                                        'teachers-components': { // split teacher libs                                            name: 'chunk-teachers-components',                                            test: resolve('src/views/teachers'),                                            priority: 60,                                            chunks: 'async',                                            reuseExistingChunk: true                                        },                                        'utils': { // split utils libs                                            name: 'chunk-utils',                                            test: resolve('src/utils'),                                            priority: 70,                                            chunks: 'async',                                            reuseExistingChunk: true                                        },                                    }                                })                            })                    }                }

分析工具:webpack-bundle-analyzer

  • 安装

npm i --save-dev webpack-bundle-analyzer

  • 配置

 config.plugin('BundleAnalyzerPlugin').use(BundleAnalyzerPlugin).tap(() => [      {        rel: 'BundleAnalyzerPlugin',        analyzerMode: 'server', // 'server': 启动端口服务;'static': 生成 report.html;'disabled': 配合 generateStatsFile 使用;        generateStatsFile: false, // 是否生成stats.JSON文件        analyzerHost: '127.0.0.1',        analyzerPort: '8667',        reportFilename: 'report.html',        defaultSizes: 'parsed',        openAnalyzer: false,        statsFilename: 'stats.json',        statsOptions: null,        excludeAssets: null      }

运行

npm run build 或者 npm run dev

访问

Http://127.0.0.1:8877

扩展:webpack中module package bundle chunk详细讲解

  • module 模块 写一个commonjs 或者amd规范的包就叫module

  • package 是所有module构成的,它是一个整体的概念,整个项目就是一个package,它可能是commonjs或者amd规范的包

  • bundle是webpack打包的结果 所有的module都打包成一个文件 (module集合

  • chunk bundle是入口bundle,异步加载一个模块,是需要运行时去处理的,获取的过程就是一个代码块即chunk;由bundle获取的包为chunk

到此,相信大家对“webpack中的optimization怎么配置”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: webpack中的optimization怎么配置

本文链接: https://lsjlt.com/news/349835.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • webpack中的optimization怎么配置
    本篇内容主要讲解“webpack中的optimization怎么配置”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“webpack中的optimization怎么配置”吧!webpack配置opt...
    99+
    2023-07-05
  • webpack中的optimization配置示例详解
    webpack配置optimization minimizerruntimeChunknoEmitOnErrorssplitChunks 主要就是根据不同的策略来分割打包出来的bun...
    99+
    2023-02-23
    webpack配置optimization webpack optimization
  • Angular10怎么配置webpack打包
    小编给大家分享一下Angular10怎么配置webpack打包,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!对于 Angular 项目,推荐使用 angular-...
    99+
    2023-06-14
  • webpack中怎么配置服务热更新
    这篇文章主要讲解了“webpack中怎么配置服务热更新”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“webpack中怎么配置服务热更新”吧!   热更新的...
    99+
    2024-04-02
  • webpack中如何配置babel
    小编给大家分享一下webpack中如何配置babel,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Babel是什么Babel是一...
    99+
    2024-04-02
  • 在项目中怎么安装和配置webpack
    这篇文章主要介绍“在项目中怎么安装和配置webpack”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“在项目中怎么安装和配置webpack”文章能帮助大家解决问题。 ...
    99+
    2024-04-02
  • webpack中的代理配置方法
    这篇文章主要介绍了webpack中的代理配置方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇webpack中的代理配置方法文章都会有所收获,下面我们一起来看看吧。作用:解决开发环境跨域问题(不用再去配置ngi...
    99+
    2023-07-02
  • webpack中的代理配置详解
    目录作用:使用场景一:使用场景二使用场景三使用场景四:使用场景五:解决跨域原理vue-cli中proxyTable配置接口地址代理示例更多参数作用: 1.解决开发环境跨域问题(不用再...
    99+
    2024-04-02
  • webpack怎么配置sass模块的加载
    本篇内容主要讲解“webpack怎么配置sass模块的加载”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“webpack怎么配置sass模块的加载”吧!   为...
    99+
    2024-04-02
  • webpack配置proxyTable时pathRewrite无效怎么办
    这篇文章主要介绍了webpack配置proxyTable时pathRewrite无效怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。we...
    99+
    2024-04-02
  • webpack核心概念之entry怎么配置
    本文小编为大家详细介绍“webpack核心概念之entry怎么配置”,内容详细,步骤清晰,细节处理妥当,希望这篇“webpack核心概念之entry怎么配置”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深...
    99+
    2024-04-02
  • webpack核心概念之output怎么配置
    这篇文章主要介绍“webpack核心概念之output怎么配置”,在日常操作中,相信很多人在webpack核心概念之output怎么配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2024-04-02
  • Webpack中路径配置的示例分析
    这篇文章将为大家详细讲解有关Webpack中路径配置的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。contextcontext 是 webpack 编译时的基础...
    99+
    2024-04-02
  • webpack中怎么配置文件入口和文件出口
    今天小编给大家分享一下webpack中怎么配置文件入口和文件出口的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我...
    99+
    2024-04-02
  • vue项目怎么实现webpack配置代理
    本文小编为大家详细介绍“vue项目怎么实现webpack配置代理”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue项目怎么实现webpack配置代理”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。webpack...
    99+
    2023-06-29
  • webpack-dev-server中如何配置使用
    这篇文章给大家分享的是有关webpack-dev-server中如何配置使用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1安装的WebPack-dev-server 在终端输入...
    99+
    2024-04-02
  • webpack 2中react开发配置的示例分析
    小编给大家分享一下webpack 2中react开发配置的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!基于webpac...
    99+
    2024-04-02
  • vue-cli中webpack配置文件的示例分析
    这篇文章主要为大家展示了“vue-cli中webpack配置文件的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vue-cli中webpack配置文件的...
    99+
    2024-04-02
  • webpack常用配置的示例分析
    小编给大家分享一下webpack常用配置的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!首先我们明确一下需求:打包调试提...
    99+
    2024-04-02
  • webpack中配置文件entry与output的示例分析
    这篇文章将为大家详细讲解有关webpack中配置文件entry与output的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体如下:在webpack.confi...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作