webpack一些常用的Loader和Plugin

文章目录

webpack4一些常用的Loader:

  • babel-loader: 将ES6转化为ES5。
  • ts-loader: 将TypeScript转化为JavaScript
  • vue-loader: 将Vue转化为JavaScript
  • eslint-loader: 通过 ESLint 检查 JavaScript 代码。
  • css-loader: 加载 CSS,⽀持模块化、压缩、⽂件导⼊等特性。
  • style-loader: 把 CSS 代码注⼊到 JavaScript 中,通过 DOM 操作去加载 CSS。
  • less-loader : 将Less编译成CSS。
  • sass-loader: 将Sass编译成CSS。
  • postcss-loader : 使用PostCSS处理CSS。
  • file-loader: 把⽂件输出到⼀个⽂件夹中,在代码中通过相对 URL 去引⽤输出的⽂件。
  • url-loader: 和 file-loader 类似,但是能在⽂件很⼩的情况下以 base64 的⽅式把⽂件内容注⼊到代码中去。
  • image-loader: 载并且压缩图⽚⽂件。
  • source-map-loader: 加载额外的 Source Map ⽂件,以⽅便断点调试。
  • cache-loader : 为其他 loader 提供缓存功能,避免重复执行。
  • thread-loader: 将 loader 的执行过程放在单独的 worker 池中运行,来减少主线程的压力,提高构建速度。

webpack4一些常用的Plugin:

  • CleanWebpackPlugin: 用于在每次构建前清理输出目录中的文件
  • CompressionWebpackPlugin: 用于对打包后的资源文件进行gzip
  • HtmlWebpackPlugin: 用于生成HTML文件,并将打包后的资源文件自动引入
  • MiniCssExtractPlugin: 用于将CSS提取为单独的文件
  • DefinePlugin: 用于定义环境变量
  • UglifyJsPlugin: 用于丑化压缩JavaScript
  • CopyWebpackPlugin: 用于将静态文件直接复制到输出目录中
  • HotModuleReplacementPlugin: 用于实现模块热替换
  • FriendlyErrorsWebpackPlugin: 用于友好的展示webpack构建错误信息
  • webpack-bundle-analyzer: 用于可视化分析打包后模块的大小和依赖

关于webpack5的一些特点:

Webpack5相对于Webpack4来说,新增了很多特性和功能,修复了一些问题,同时也内置了一些新的模块和工具。以下是一些主要的区别:

新增特性:

  • 内置静态资源构建能力: Webpack5通过添加4种新的资源模块类型(asset/resource、asset/source、asset等),来替换所有的loader,如raw-loader、url-loader和file-loader等。
  • 性能优化: Webpack5相对于Webpack4来说,性能更高,打包速度更快。
  • 更好的Tree Shaking: Webpack5提供了更好的Tree Shaking功能,可以更准确地识别和消除无用的代码,从而减小打包体积。

修复的问题:

  • 长期缓存问题: Webpack4中,由于模块ID的不稳定性,导致长期缓存失效。Webpack5通过采用更稳定的模块ID生成策略,解决了这个问题。
  • 配置复杂性问题: Webpack4的配置相对复杂,容易出错。Webpack5通过简化配置和提供更多的默认配置选项,降低了配置的复杂性。

内置模块和工具:

  • 内置优化插件: Webpack5内置了一些优化插件,如ModuleConcatenationPlugin和SplitChunksPlugin等,用于优化打包结果和减小打包体积。
  • 内置环境变量: Webpack5内置了一些环境变量,如process.env.NODE_ENV,用于指示当前的环境(开发环境或生产环境)。

此外,Webpack5还相对于Webpack4来说,支持更多的JavaScript新特性、更好的缓存机制等。


关于webpack5的一些内置:

在Webpack 5中,一些常用的loader和plugin被内置,这意味着你不再需要显式地在配置文件中安装和配置它们。以下是一些在Webpack 4中可能需要单独安装,但在Webpack 5中被内置的loader和plugin:

内置Loader:

  • style-loader:在Webpack 5中,style-loader被内置为实验性功能。它允许你将CSS样式直接注入到HTML中。
  • css-loader:用于解析CSS文件中的@import和url()等依赖关系。在Webpack 5中,css-loader也被内置为实验性功能。
  • mini-css-extract-plugin:这个plugin在Webpack 5中被内置为asset/style模块类型。它用于从bundle中提取CSS到单独的文件。

内置Plugin:

  • HtmlWebpackPlugin:这个plugin在Webpack 5中仍然需要单独安装,但Webpack 5为其提供了更好的集成和默认行为。它用于简化HTML文件的创建,并自动引入生成的bundle。
  • TerserPlugin:用于压缩和最小化JavaScript代码。在Webpack 5中,TerserPlugin被内置为生产环境的默认压缩工具。

这里就说几个常见的,其他更多的去webpack5官网看吧

相关推荐
Bigger5 小时前
Tauri (26)——托盘图标总对不上系统主题?一行 Template Image 搞定
前端·rust·app
kyriewen7 小时前
面试官问你:“AI 能写 80% 的代码了,公司为什么还需要你?”
前端·javascript·面试
冬奇Lab7 小时前
每日一个开源项目(第141篇):hiring-agent - HackerRank 开源了他们的简历评分系统,你的简历能得几分?
人工智能·面试·开源
甲维斯8 小时前
又升级咯!坦克大战2026,科技与复古并存!
前端·人工智能·游戏开发
搬砖的码农10 小时前
(08)为什么我的 Agent 一跑后台服务就卡死
前端·agent·ai编程
飘尘10 小时前
前端转全栈(Java 后端)必须要知道的:开发中的锁机制与分布式并发控制
前端·后端·全栈
亲亲小宝宝鸭10 小时前
前端性能监控:web-vitals
前端·性能优化·监控
陆枫Larry11 小时前
可滚动页面背景填不满:`height: 100vh` vs `min-height: 100vh`
前端
Patrick_Wilson11 小时前
Squash Merge 的血缘陷阱:为什么删掉的代码又活了过来
前端·git·程序员