webpack 相关插件及作用,表格 - cag2050

webpack 相关插件及作用(表格)

webpack 相关插件及作用:

插件默认启用作用
UglifyJsPluginproduction模式时压缩代码、
DefinePlugin创建全局常量用于编译时解析
NoEmitOnErrorsPluginproduction模式时如果没有使用NoEmitOnErrorsPlugin,当发生错误时,就会重载一个有错误信息的页面,把用户的屏幕搞花。

使用NoEmitOnErrorsPlugin插件,就不会加载这个页面了,错误信息只是在控制台中输出

ModuleConcatenationPluginproduction模式时Webpack默认将每一个模块包装在独立的闭包函数中,这个包装函数使得javascript的执行稍微变慢了一点;

ModuleConcatenationPlugin让输出的打包在一个作用域(闭包函数)里了,更少的函数意味着更少的运行时开销。

NamedModulesPlugindevelopment模式时将使用模块的路径,而不是数字标识符
NamedChunksPlugindevelopment模式时让chunks有名字,而不是chunks id;

只能对普通的 Webpack 模块起作用,异步模块(异步模块可以在 import 的时候加上 chunkName 的注释,比如这样:import(/ webpackChunkName: “lodash” / ‘lodash’).then() 这样就有 Name 了),external 模块是不会起作用的。

HashedModuleIdsPluginHashedModuleIdsPlugin的作用和 NamedChunksPlugin 是一样的,只不过 HashedModuleIdsPlugin 把根据模块相对路径生成的 hash 作为 chunk id,这样 chunk id 会更短。因此在生产中更推荐用 HashedModuleIdsPlugin。