1.webpack怎么按需引入?
2.webpack中loader和plugin的区别?
loader
是一个转换器,只专注于转换文件这一个领域,完成压缩、打包、语言编译,它仅仅是为了打包,并且运行在打包之前。
plugin
是一个拓展器,丰富了webpack本身,为其进行一些其他功能的拓展。它不限于打包、资源的加载还有其他功能,所以它是在整个编译周期都起作用。
3.webpack与gulp的区别?
gulp
:强调的是前端开发的工作流程,我们可以通过配置一系列的task,定义task处理的事务(例如文件压缩、雪碧图、启动server、版本控制)然后定义执行顺序,来让gulp执行这些task,从而构建项目的整个前端开发流程。
webpack
:是一个前端模块化方案,更侧重模块打包,我们可以把开发中的所有资源(图片、js文件、css文件等)都看成模块,通过loader(加载器)和plugins(插件)对资源进行处理,打包成符合生产环境部署的前端资源。
4.git和SVN的区别在哪里?
1
.git和SVN最大的区别在于git是分布式的,而SVN是集中式的,因此我们不能再离线的时候使用SVN,如果服务器出现问题,我们就没有办法使用SVN来提交我们的代码。
2
:SVN的分支是整个版本库的复制的一份完整目录,而git的分支是指针指向某次提交,因此git的分支创建开销更小,并且分支上的变化不会影响到其他人。SVN的分支变化会影响到所有的人。
3
:SVN指令相对于git来说更简单一些,比git更容易上手。
5. 经常使用的git命令?
git init 新建git代码库(初始化)
git add 添加指定文件到暂存区
git rm 删除工作区文件,并且将这次删除放入暂存区
git commit -m 提交暂存区到仓库区
git branch 列出所有分支
git checkout -b 新建一个分区,并切换到该分区
git status 显示有变更的文件
git reset HEAD --sort 回撤提交到暂存区
git reset HEAD --hard 回撤提交,放弃变更(慎用)
git checkout 分支名 检出分支
git revert HEAD 撤销最近一次提交,git revert命令意思是撤销某次提交。
它会产生一个新的提交,虽然代码回退了,但版本依然是向前的。
6.git pull与git fetch的区别?
git fetch
:只是将远程仓库的变化下载下来,并没有和本地分支合并
gti pull
:会将远程仓库的变化下载下来,并和当前分支合并
7.git rebase 和git merge的区别?
git rebase和git merge都是用于分支合并,关键在于commit记录的处理上不同
git rebase
:会先找到两个分支的第一个共同的commit祖先记录,然后将提取当前分支之后的所有commit记录,然后将这个commit记录添加到目标分支的最新提交后面,经过这个合并后,两个分支合并后的commit记录就变成了线性的记录了。
git merge
:会新建一个新的commit对象,然后两个分支以前的commit记录都指向这个新的commit记录,这种方法会保留之前的每个分支的commit历史。