一、是什么

webpack 是一种前端资源构建工具,一个静态模块打包器 (module bundler)
webpack 看来, 前端的所有资源文件(js/json/css/img/less/…) 都会作为模块处理
它将根据模块的依赖关系进行静态分析,打包生成对应的静态资源 (bundle)
image.png

二、五个核心概念

1. Entry

入口(Entry)指示 webpack 以哪个文件为入口起点开始打包,分析构建内部依赖图

2.Output

输出(Output)指示 webpack 打包后的资源 bundles 输出到哪里去,以及如何命名

3.Loader

Loader 让 webpack 能 够 去 处 理 那 些 非 JavaScript 文 件 (webpack 自 身 只 理 解 JavaScript)

4.Plugins

插件(Plugins)可以用于执行范围更广的任务。插件的范围包括,从打包优化和压缩,一直到重新定义环境中的变量等

5.Mode

模式(Mode)指示 webpack 使用相应模式的配置
image.png

三、编译打包应用

1.运行指令

开发环境指令:webpack src/js/index.js -o build/js/built.js --mode=development
功能:webpack 能够编译打包 js 和 json 文件,并且能将 es6 的模块化语法转换成浏览器能识别的语法。
生产环境指令:webpack src/js/index.js -o build/js/built.js --mode=production
功能:在开发配置功能上多一个功能,压缩代码。

2.结论

  • webpack 能够编译打包 js 和 json 文件
  • 能将 es6 的模块化语法转换成浏览器能识别的语法
  • 能压缩代码

    3.问题

  • 不能编译打包 css、img 等文件

  • 不能将 js 的 es6 基本语法转化为 es5 以下语法