05-前端工程化

66 阅读2分钟

目录


[TOC]


一、Git

4. git rebase 和 git merge 的区别

git merge 和 git rebase 都是用于分支合并,关键 commit 记录的处理上不同

准确的说,rebase和merge是对代码产生的影响、结果相同。 merge会形成一个四边形,产生一个新的commit,就是一次新的提交,把develop分支带过来了; rebase抛开commid的变化,就相当于develop从没出现过一样,按顺序在master新提交一遍; 补充一个命令cherry-pick,可以合并单次commit; 建议使用merge,保留原分支变更,master就是一次一次的merge,git命令可以很直观的看到,或平台网页端网络图那里更好看,什么时候合并了一个feture。rebase后看总图,会有很多重复提交;

  • git merge 会新建一个新的 commit 对象,然后两个分支以前的 commit 记录都指向这个新 commit 记录。这种方法会保留之前每个分支的 commit 历史。
  • git rebase 会先找到两个分支的第一个共同的 commit 祖先记录,然后将提取当前分支这之后的所有 commit 记录,然后将这个 commit 记录添加到目标分支的最新提交后面。经过这个合并后,两个分支合并后的 commit 记录就变为了线性的记录了。 img

二、Webpack

1.优先看weboack5文章 juejin.cn/post/702324… 2.webpack面试题 juejin.cn/post/684490…

三、其他

1. Babel的原理是什么**?**

babel 的转译过程也分为三个阶段,这三步具体是:

  • 解析 Parse: 将代码解析⽣成抽象语法树(AST),即词法分析与语法分析的过程;
  • 转换 Transform: 对于 AST 进⾏变换⼀系列的操作,babel 接受得到 AST 并通过 babel-traverse 对其进⾏遍历,在此过程中进⾏添加、更新及移除等操作;
  • ⽣成 Generate: 将变换后的 AST 再转换为 JS 代码, 使⽤到的模块是 babel-generator。

image.png