webpack / vite

概念

  • 模块打包工具(model bundler)
  • module - 源码文件 ~ 图示左
  • chunk - 多个文件合成的模块 ~ 图示中
  • bundle - 最终输出文件 ~ 图示右

在这里插入图片描述


SPA单页面应用优缺点

  • 优点:良好交互体验、不需重载整个页面、数据异步获取、前后端分离,减轻服务器压力(输出数据即可)
  • 缺点
    • 首屏加载慢 ~ 解决方案:路由懒加载,CDN,异步组件,SSR
    • 不利于SEO ~ 解决方案:服务端渲染,预渲染,h5 history

Es Moudule、commonjs

  • es Moudule 静态引入 / 编译引入 ~ import / export / export default ~ 支持 tree-shaking
  • commonjs 动态引入 / 执行引入 ~ require() / module.export

require 导入模块步骤

  • 相对路径转换为绝对路径
  • 查看缓存
  • 读取文件代码, 优先考虑 js, js / json 可省后缀、其他文件当作 js 处理
  • 包裹函数执行并缓存

安装

  • 全局安装 :npm install webpack@version webpack-cli@version -g(不推荐)
  • 局部安装 :npm i -D webpack@version webpack-cli@version(推荐)
  • 查看所有版本:npm view webpack versions
  • 查看安装版本:webpack -v webpack-cli -v (全局环境)/ npx webpack -v npx webpack-cli -v (当前环境)

npx

  • npx 用于执行安装在本地项目中的可执行文件
  • npx mrm 是执行项目脚手架任务的命令
  • npx msw 是一个用于模拟服务端的工具,它是 Mock Service Worker(MSW)的命令行接口

webpack 常见性能优化

  • scope Hosting:代码合并:使得体积更小、函数作用域更少、webpack 4 / 5 自动开启
  • 图片 base64 压缩
  • 组件懒加载
  • babel-loader:缓存注入
  • ignorePlugin:避免引入无用模块
  • noParse:引入不打包
  • happyPack:多进程打包
  • parallelUglifyPlugin:多进程代码压缩
  • CDN
  • Dllplugin
  • 热更新
  • 自动刷新

Webpack Vite 不同点

  • vite 开发环境使用 es6 Module 无需构建
  • 生产环境使用 rollup
WebpackVite 都是前端开发中的构建工具,它们在现代 Web 开发中扮演着重要角色。下面是关于这两个工具的一些面试常见问题: 1. 请简述Webpack的主要功能和工作原理。 Webpack 是一个模块打包器,它将项目中的静态资源和代码打包成一个或多个可执行的文件。它通过解析模块依赖,执行模块转换(如ES6转ES5),并优化代码来创建更高效的生产环境。 2. Vite的主要特点是什么? Vite 是一个更快的前端构建工具,它采用了即时(Just-In-Time, JIT)编译技术,可以在开发环境中几乎实时预览更改。它的特点是轻量级、零配置启动、快速热更新以及对Vue.js有很好的原生支持。 3. WebpackVite在性能优化方面的差异是什么? Webpack通常会有较长的启动时间,因为它会预先编译所有模块。而Vite由于即时编译,启动速度更快。在大型项目或复杂依赖管理上,Webpack的优化策略可能更全面,但Vite在开发体验上更具优势。 4. 何时选择Webpack,何时选择Vite? 如果项目规模较小,开发迭代频繁,或者对快速反馈有高要求,Vite是个不错的选择。而如果项目庞大,依赖复杂且需要更精细的模块管理和优化,Webpack可能更适合。 5. 谈谈WebpackVite在构建速度、代码分割和模块热替换方面的表现? 相关问题: 1. Webpack如何处理模块的懒加载? 2. Vite是如何实现实时编译的? 3. 在实际项目中,如何决定使用Webpack还是Vite作为主要的构建工具?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值