01-初识webpack

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

webpack是什么

webpack是一个静态的模块化打包为现代JavaScript应用程序。

  • 打包bundlerwebpack可以帮我们进行打包所以它是一个打包工具。
  • 静态的static这样表述的原因是我们最终可以将代码打包成最终的静态资源部署到静态服务器
  • 模块化modulewebpack默认支持各种模块化开发ES Module、CommonJS、AMD等
  • 现代的modern我们前端说过正是因为现代前端开发面临各种各样的问题才催生了webpack的出现和发展

webpack与webpack-cli

1.webpack的安裝目前分为两个webpack、webpack-cli非必须安装webpack-cli会读取webpack.config.js的内 容然后进行解析再传入webpackvue有自己的实现。

2.webpack和webpack-cli的关系

  • 执行webpack命令会执行node_modules下的.bin目录下的webpack
  • webpack在执行时是依赖webpack-cli的如果没有安装就会报错
  • 而webpack-cli中代码执行时才是真正利用webpack进行编译和打包的过程
  • 所以在安装webpack时我们需要同时安装webpack-cli第三方的脚手架事实上是没有使用webpack-cli的而是类似于 自己的vue-service-cli的东西

核心概念

  • Entry:入口 Webpack 行构建的第一步将 Entry 开始可抽象成输入。
  • Module 模块在 Webpack 切皆模块一个模块对应一个文件。 Webpack 会从配置的 Entry 开始递归找出所有依赖的模块。
  • Chunk 代码块一个chunk 多个模块组合而成用于代码合并与分割。
  • Loader 模块转换器用于将模块的原内容按照需求转换成新内容。
  • Plugin 扩展插件在 Webpack 构建流程中的特定时机注入扩展逻辑来改变构建结 果或做我们想要的事情。
  • Output 输出结果在 Webpack 经过一系列处理并得出最终想要的代码后输出结果。

Webpack 在启动后会从 Entry里配置的 Module 开始递归解析 Entry 依赖的所有 Module 。每找到一个 Module 就会根据配置的 Loader 去找出对应的转换规则对 Module 进行转换后 再解析出当前 Module 依赖的 Module 这些模块会以 Entry为单位进行分组Entry及其 所有依赖的 Module 被分到一个组也就是 Chunk 。最后 Webpack 将所有 Chunk 转换成 文件输出。在整个流程中 Webpack 会在恰当的时机执行 Plugin里定义的逻辑。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6