400-123-4657

公司动态 分类
优化(Optimization)发布日期:2024-04-22 浏览次数:

从 webpack 4 开始,会根据你选择的 来执行不同的优化, 不过所有的优化还是可以手动配置和重写。

告知 webpack 当选择模块 id 时需要使用哪种算法。将 设置为 会告知 webpack 没有任何内置的算法会被使用,但自定义的算法会由插件提供。 的默认值是 :

  • 如果环境是开发环境,那么 会被设置成 ,但当在生产环境中时,它会被设置成
  • 如果上述的条件都不符合, 会被默认设置为

下述选项字符串值均为被支持:

选项值描述
按使用顺序的数字 id。
对调试更友好的可读的 id。
在不同的编译中不变的短数字 id。有益于长期缓存。在生产模式中会默认开启。
专注于让初始下载包大小更小的数字 id。
专注于让总下载包大小更小的数字 id。

webpack.config.js

默认地,当 被设置为 时,最少 3 位数字会被使用。要覆盖默认的行为,要将 设置为 ,同时要使用 。

webpack.config.js

告诉 webpack 在模块图中查找可以安全连接到单个模块的片段。此优化首先需要 设置为启用。 默认情况下, 在 模式 下启用,而在其它情况下被禁用。

webpack.config.js

使用 在编译时每当有错误时,就会发送静态资源。这样可以确保出错的静态资源被发送出来。关键错误会被发送到生成的代码中,并会在运行时报错。

webpack.config.js

告知 webpack 确定和标记出作为其他 chunk 子集的那些 chunk,其方式是在已经加载过较大的 chunk 之后,就不再去加载这些 chunk 子集。 默认会在 模式 中启用,其他情况禁用。

webpack.config.js

告诉 webpack 是否对未使用的导出内容实施内部图形分析。

webpack.config.js

允许控制导出处理(export mangling)。

默认 会在 模式下 启用而其它情况会被禁用。

此选项支持以下选项:

选项描述
简写形式 — 通常只有一个字符 — 专注于最小的下载 size。
简写形式 - 通常两个字符 — 在添加或移除 export 时不会改变。适用于长效缓存。
等价于
保留原名,有利于阅读和调试。

webpack.config.js

在设置为 时,告知 webpack 通过将导入修改为更短的字符串,来减少 WASM 大小。这会破坏模块和导出名称。

webpack.config.js

告知 webpack 合并含有相同模块的 chunk。将 设置为 以禁用这项优化。

webpack.config.js

告知 webpack 使用 TerserPlugin 或其它在 定义的插件压缩 bundle。

webpack.config.js

允许你通过提供一个或多个定制过的 TerserPlugin 实例,覆盖默认压缩工具(minimizer)。

webpack.config.js

或,使用函数的形式:

在 中可以使用 来访问默认值。

告知 webpack 当选择模块 id 时需要使用哪种算法。将 设置为 会告知 webpack 没有任何内置的算法会被使用,但自定义的算法会由插件提供。

下述选项字符串值均为被支持:

选荐值描述
按使用顺序的数字 id。
对调试更友好的可读的 id。
被哈希转化成的小位数值模块名。
专注于让初始下载包大小更小的数字 id。

webpack.config.js

选项有益于长期缓存,但对比于 来说,它会导致更小的文件 bundles。数字值的长度会被选作用于填满最多 80%的 id 空间。当 被设置成 ,默认最小 3 位数字会被使用。要覆盖默认行为,要将 设置成 ,并且要使用 。

webpack.config.js

告知 webpack 将 设置为一个给定字符串。如果 不是 ,则会使用 DefinePlugin默认值取决于 mode,如果为 false 值,则会回退到 。

可能的值有:

  • 任何字符串:用于设置 的值。
  • false:不修改/设置 的值。

webpack.config.js

告知 webpack 生成带有相对路径的记录(records)使得可以移动上下文目录。

默认 被禁用。如果下列至少一个选项在 webpack 中被设置,该选项也会自动启用:,

webpack.config.js

告知 webpack 去确定那些由模块提供的导出内容,为 生成更多高效的代码。默认 会被启用。

webpack.config.js

在处理静态资源后添加额外的哈希编译,以获得正确的静态资源内容哈希。如果 设置为 ,内部数据用于计算哈希值,当静态资源相同时,它可以改变。

webpack.config.js

如果模块已经包含在所有父级模块中,告知 webpack 从 chunk 中检测出这些模块,或移除这些模块。将 设置为 以启用这项优化。在 模式 中默认会被开启。

webpack.config.js

如果 chunk 为空,告知 webpack 检测或移除这些 chunk。将 设置为 以禁用这项优化。

webpack.config.js

将 设置为 或 ,会为每个入口添加一个只含有 runtime 的额外 chunk。此配置的别名如下:

webpack.config.js

值 会创建一个在所有生成 chunk 之间共享的运行时文件。此设置是如下设置的别名:

webpack.config.js

通过将 设置为 ,对象中可以设置只有 属性,其中属性值可以是名称或者返回名称的函数,用于为 runtime chunks 命名。

默认值是 :每个入口 chunk 中直接嵌入 runtime。

webpack.config.js

告诉 webpack 去辨识 中的 标记或规则,以跳过那些当导出不被使用且被标记为不包含副作用的模块。

package.json

首先依赖于 被设置为启用。这个依赖会有构建时间的损耗,但移除模块将生成更少的代码,因此有利于性能的提升。该优化的效果取决于代码库, 可以尝试此特性以获取一些可能的性能优化。

webpack.config.js

如果不想要分析源码,那么可以将其指定为 :

此处的 值在非生产环境中默认使用。

对于动态导入模块,默认使用 webpack v4+ 提供的全新的通用分块策略(common chunk strategy)。请在 SplitChunksPlugin 页面中查看配置其行为的可用选项。

告诉 webpack 去决定每个模块的到处内容是否被使用。这首先取决于 选项是否被启用。由 收集的信息会被其它优化手段或者代码生成使用,比如未使用的导出内容不会被生成,当所有的使用都适配,导出名称会被处理做单个标记字符。 压缩工具执行清除死代码时会受益于该选项,而且能够去除未使用的导出内容。

webpack.config.js

选择退出每次运行时使用 export 分享:

 
            
Copyright © 2012-2018 天宏-天宏娱乐国际科技集团 版权所有 非商用版本

琼ICP备xxxxxxxx号

平台注册入口