webpack 相关插件及作用(表格)
webpack 相关插件及作用:
插件 | 默认启用 | 作用 |
---|---|---|
UglifyJsPlugin | production模式时 | 压缩代码、 |
DefinePlugin | 创建全局常量用于编译时解析 | |
NoEmitOnErrorsPlugin | production模式时 | 如果没有使用NoEmitOnErrorsPlugin,当发生错误时,就会重载一个有错误信息的页面,把用户的屏幕搞花。 使用NoEmitOnErrorsPlugin插件,就不会加载这个页面了,错误信息只是在控制台中输出 |
ModuleConcatenationPlugin | production模式时 | Webpack默认将每一个模块包装在独立的闭包函数中,这个包装函数使得javascript的执行稍微变慢了一点; ModuleConcatenationPlugin让输出的打包在一个作用域(闭包函数)里了,更少的函数意味着更少的运行时开销。 |
NamedModulesPlugin | development模式时 | 将使用模块的路径,而不是数字标识符 |
NamedChunksPlugin | development模式时 | 让chunks有名字,而不是chunks id; 只能对普通的 Webpack 模块起作用,异步模块(异步模块可以在 import 的时候加上 chunkName 的注释,比如这样:import(/ webpackChunkName: “lodash” / ‘lodash’).then() 这样就有 Name 了),external 模块是不会起作用的。 |
HashedModuleIdsPlugin | HashedModuleIdsPlugin的作用和 NamedChunksPlugin 是一样的,只不过 HashedModuleIdsPlugin 把根据模块相对路径生成的 hash 作为 chunk id,这样 chunk id 会更短。因此在生产中更推荐用 HashedModuleIdsPlugin。 |