【Webpack】简介

321 阅读2分钟

一、简介:webpack初始

1.1 版本历史:

  • 2012.3 - webpack 问世
  • 2014.2 - webpack1
  • 2016.12 - webpack2
  • 2017.6 - webpack3
  • 2018.2 - webpack4
  • 2020.10 - webpack5(要求node版本10.13+)

1.2 官网

webpack | webpack中文文档 | webpack中文网 (webpackjs.com)

1.3 定义(是什么)

  • webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包 工具
  • 静态模块:模块开发,避免重复代码、逻辑,提高开发效率
  • 打包:将各个模块,按照一定的规则组装起来

1.4 特点

  1. 构建(不支持的代码转换成支持的代码)

    • 源代码编译成浏览器解析的生产代码(如:ES6 => ES5, scss => css)
    • 格式化校验
    • 压缩

    da916dc1065e66e021d133481713ade.png

  2. 打包:把多个文件合并成一个文件,减少HTTP的请求,提高生产环境的运行效率

    image.png

  3. 发布 web 服务:生成本地的服务器,监听开发代码的修改,自动更新页面的显示

    image.png

1.5 功能

1. 将多个不同类型的文件打包
2. 编译代码,确保浏览器解析
3. 对代码进行压缩,减少文件体积,提高加载速度
4. 对源代码进行格式化校验
5. 有热更新功能,提高开发效率
6. 不同环境,提供不同的打包策略

二、五个核心配置

2.1 入口(Entry)

告诉webpack应该使用哪个模块和库,来作为构建项目的开始。

默认值是 ./src/index.js,但是可以在webpack config文件中配置 entry 属性,来指定一个或多个不同的入口

2.2 出口(Output)

告诉 webpack 在哪里输出它所创建的 bundle,以及如何命名这些文件。

主要输出文件的默认值是 ./dist/main.js,其他生成文件默认放置在 ./dist 文件夹中。

2.3 加载器(loader)

webpack 只能理解 JS 和 JSON 文件,loader 让 webpack 能够去处理其他类型的文件,并将它们转换为有效模块,以供应用程序使用。例如: css-loader 等

2.4 插件(plugins)

插件是 webpack 的支柱功能,能够执行范围更广的任务,包括:打包优化、压缩、重新定义环境中的变量等。例如:html-webpack-plugin

2.5 模式(Mode)

区分环境,不同环境打包逻辑不同

  • development: 优化打包速度,提供调试的辅助功能
  • production:优化打包结果,打包之后代码的运行效率和性能优化
  • none:最原始的打包

资料来源