我的网站开发技术经验总结 我的网站开发技术经验总结
首页

fangdown

我的网站开发技术经验总结
首页
  • 大前端

    • nodejs

    • git

    • CI

    • 小程序

    • docker

    • Typescript

    • webpack

      • webpack到底有什么作用
      • webpack能给前端做哪些性能优化
      • webpack能给前端做哪些性能优化
      • 说说Webpack中常见的Loader?解决了什么问题?
      • 说说webpack proxy的工作原理?
      • 说说webpack中常见的Plugin?解决了什么问题?
      • 说说webpack热更新的理解
      • 说说webpack的构建流程?
      • 说说前端打包工具还有哪些
      • 说说对webpack的理解, 解决了什么问题
        • 前世今生
        • 是什么
          • webpack的能力
        • 解决了什么问题?
      • 说说编写loader和plugin的思路
    • 安全

  • 基础

  • 框架

  • 情商

  • 算法

  • 网络

  • 千锤百炼
  • 大前端
  • webpack
fangdown
2021-08-07
目录

说说对webpack的理解, 解决了什么问题

# 前世今生

webpack的目标是什么?模块化

那么早起的模块化是怎么样的? 独立的js模块文件 --> 命名空间 --> IIFE

  • 独立的js模块文件

<script src="module-a.js"></script>
<script src="module-b.js"></script>

全局污染,无依赖关系

  • 命名空间
window.moduleA = {
  method1: function () {
    console.log('moduleA#method1')
  }
}

无法解决依赖问题

  • IIFE
(function ($) {
  var name = 'module-a'

  function method1 () {
    console.log(name + '#method1')
    $('body').animate({ margin: '200px' })
  }
    
  window.moduleA = {
    method1: method1
  }
})(jQuery)

依赖通过传参方式,模块加载顺序未解决

# 是什么

webpack是一个用于现代JavaScript应用程序的静态模块打包工具

  • 静态模块 开发阶段,可以被webpack直接引用的资源,可以被打进bundle.js的资源

# webpack的能力

  1. 编译代码能力 把es5以上格式的代码,编译成浏览器识别的es5代码
  2. 模块整合能力 把一些模块整合成一个bundle.js文件,避免频繁请求,提高性能
  3. 万物皆模块 所有类型的资源都可以通过代码控制

# 解决了什么问题?

  1. 通过模块化的方式开发
  2. 可以使用高级特性(ts,less)来开发
  3. 监听文件编号,并反映到浏览器上
  4. html/css/js都可以模块化
  5. 代码压缩,合并及其他优化
#webpack
上次更新: 2021/12/19, 18:05:42
说说前端打包工具还有哪些
说说编写loader和plugin的思路

← 说说前端打包工具还有哪些 说说编写loader和plugin的思路→

最近更新
01
多分支修复撞车的问题
05-01
02
如何成为架构师
01-23
03
服务器部署全过程
11-23
更多文章>
Theme by Vdoing | Copyright © 2019-2026 fangdown | 粤ICP备19079809号
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式