Tag:工具
All the articles with the tag "工具".
Webpack 中的 chunk 是什么?
Posted on:2024年9月21日 at 02:00在 Webpack 中,"chunk" 指的是打包过程中生成的代码块。理解 chunk 的功能和作用,有助于更好地优化应用的性能和加载速度。 1. 什么是 Chunk 定义:Chunk 是 Webpack 在构建过程中生成的一个或多个模块的集合。每个 chunk 可以被视为一个独立的代码块,可能包含多个模块的代码。 2. Chunk 的类型 主 Chunk(Main Chunk):这是入口文件生成
说说你对 npx 的了解?
Posted on:2024年8月15日 at 19:02npx 是 npm 包管理器的一个附加工具,从 npm 5.2.0 版本开始引入。它主要用于简化执行 Node.js 包和模块的过程,特别是那些作为命令行工具使用的包。 npx 的主要功能和特点 运行本地或全局包: 可以直接执行 node_modules/.bin 中的可执行文件,无需全局安装。例如,运行 npx eslint . 会使用本地项目中安装的 eslint。 临时使用包: 不需要全局安
了解语义化版本 SemVer(Semantic Versioning)吗?
Posted on:2024年8月15日 at 19:00Semantic Versioning(语义化版本控制)是一种版本控制规范,旨在帮助开发者清晰地表达软件版本之间的变化,并确保版本更新对用户的影响可预见和可管理。SemVer 的核心在于使用三段式版本号:MAJOR.MINOR.PATCH。 版本号结构 MAJOR(主版本号) 变更:当你做了不兼容的 API 修改时。 示例:2.0.0,3.0.0 MINOR(次版本号) 变更:当你在不破坏向后兼容
说说你对 V8 引擎的了解
Posted on:2024年8月14日 at 19:51V8 引擎是 Google 开发的一个开源 JavaScript 引擎,广泛应用于 Chrome 浏览器和 Node.js。它主要负责将 JavaScript 代码转换为高效的机器代码,以便快速执行。 以下是对 V8 引擎的核心特性和工作原理的介绍: 1. 核心特性 即时编译(JIT Compilation):V8 将 JavaScript 代码转换为机器代码,并直接执行。这种即时编译方式提高了执
说一下 vite 的构建流程
Posted on:2024年8月10日 at 17:07Vite 是一个基于现代浏览器原生 ES 模块的开发服务器和构建工具,其构建流程相较于传统的打包工具有所不同。 下面是 Vite 的构建流程简要说明: 启动开发服务器:通过运行 vite 命令,Vite 启动一个开发服务器。 解析入口模块:当用户访问应用程序时,Vite 会解析入口模块(通常是 index.html)。它会分析该模块的依赖关系,并将其作为构建的起点。 按需编译:Vite 会根据需要
git 中 rebase、reset、revert 有什么区别?
Posted on:2024年8月10日 at 17:07在Git中,rebase、reset和revert是三个常用的操作命令,它们用于处理提交历史、撤销更改或应用更改。它们的主要区别如下: Rebase(变基):git rebase命令用于将一个分支的提交应用到另一个分支上,从而重新组织提交历史。它可以用于合并分支或消除分支之间的差异。通过变基,可以使得代码提交历史更加清晰、线性,并且可以避免生成大量的合并提交。 Reset(重置):git rese
npm 和 yarn有哪些不一样的地方?
Posted on:2024年8月10日 at 17:06早期的npm 其实在最早期的npm版本(npm v2),npm的设计可以说是非常的简单,在安装依赖的时候会将依赖放到 node_modules文件中。同时,如果某个直接依赖A依赖于其他的依赖包B,那么依赖B会作为间接依赖,安装到依赖A的文件夹node_modules中,然后可能多个包之间也会有出现同样的依赖递归的,如果项目一旦过大,那么必然会形成一棵巨大的依赖树,依赖包会出现重复,形成嵌套地狱。
说说你对git reset 和 git revert 的理解?区别?
Posted on:2024年8月10日 at 17:05一、是什么 git reset reset用于回退版本,可以遗弃不再使用的提交 执行遗弃时,需要根据影响的范围而指定不同的参数,可以指定是否复原索引或工作树内容 git revert 在当前提交后面,新增一次提交,抵消掉上一次提交导致的所有变化,不会改变过去的历史,主要是用于安全地取消过去发布的提交 二、如何用 git reset 当没有指定ID的时候,默认使用HEAD,如果指定ID,那么就是基于
谈谈对 babel-polyfill 的了解
Posted on:2024年8月10日 at 17:05babel polyfill 有三种: babel-polyfill babel-runtime babel-plugin-transform-runtime babel-polyfill babel-polyfill通过向全局对象和内置对象的prototype上添加方法来实现的。所以这会造成全局空间污染。 babel-polyfill使用的两种方式: webpack.config.js 中: 配
说说你对低代码的了解
Posted on:2024年1月25日 at 20:11低代码的热潮在几年前就火过,从阿里钉钉跨平台协作方式,再到飞书上的审批流程,以及目前我们接触到的表单审批、投票的模板,这些都是关于低代码的实现方式。随着企业数字化转型和云计算的不断发展,低代码平台又一次成为热门话题被越来越多的人讨论。 低代码平台概述 低代码开发平台,英文全称“Low-Code Development Platform”,简称 LCDP,是通过少量代码或零代码就可以快速生成新应用,
说说 git 发生冲突的场景?如何解决?
Posted on:2024年1月25日 at 19:23一、是什么 一般情况下,出现分支的场景有如下: 多个分支代码合并到一个分支时 多个分支向同一个远端分支推送 具体情况就是,多个分支修改了同一个文件(任何地方)或者多个分支修改了同一个文件的名称 如果两个分支中分别修改了不同文件中的部分,是不会产生冲突,直接合并即可 应用在命令中,就是push、pull、stash、rebase等命令下都有可能产生冲突情况,从本质上来讲,都是merge和patch(
说说你对git rebase 和 git merge的理解?以及它们的区别?
Posted on:2024年1月25日 at 19:23一、是什么 在使用 git 进行版本管理的项目中,当完成一个特性的开发并将其合并到 master 分支时,会有两种方式: git merge git rebase git rebase 与 git merge都有相同的作用,都是将一个分支的提交合并到另一分支上,但是在原理上却不相同 用法上两者也十分的简单: git merge 将当前分支合并到指定分支,命令用法如下: git merge xxx
说说你对git stash 的理解?应用场景?
Posted on:2024年1月25日 at 19:22一、是什么 stash,译为存放,在 git 中,可以理解为保存当前工作进度,会把暂存区和工作区的改动进行保存,这些修改会保存在一个栈上 后续你可以在任何时候任何分支重新将某次的修改推出来,重新应用这些更改的代码 默认情况下,git stash会缓存下列状态的文件: 添加到暂存区的修改(staged changes) Git跟踪的但并未添加到暂存区的修改(unstaged changes) 但以下
说说对git pull 和 git fetch 的理解?有什么区别?
Posted on:2024年1月25日 at 19:22一、是什么 先回顾两个命令的定义 git fetch 命令用于从另一个存储库下载对象和引用 git pull 命令用于从另一个存储库或本地分支获取并集成(整合) 再来看一次git的工作流程图,如下所示: 可以看到,git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中 而git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = g
说说Git 中 HEAD、工作树和索引之间的区别?
Posted on:2024年1月25日 at 19:22一、HEAD 在git中,可以存在很多分支,其本质上是一个指向commit对象的可变指针,而Head是一个特别的指针,是一个指向你正在工作中的本地分支的指针 简单来讲,就是你现在在哪儿,HEAD 就指向哪儿 例如当前我们处于master分支,所以HEAD这个指针指向了master分支指针 然后通过调用git checkout test切换到test分支,那么HEAD则指向test分支,如下图: 但
说说Git常用的命令有哪些?
Posted on:2024年1月25日 at 19:21一、前言 git 的操作可以通过命令的形式如执行,日常使用就如下图6个命令即可 实际上,如果想要熟练使用,超过60多个命令需要了解,下面则介绍下常见的的git 命令 二、有哪些 配置 Git 自带一个 git config 的工具来帮助设置控制 Git 外观和行为的配置变量,在我们安装完git之后,第一件事就是设置你的用户名和邮件地址 后续每一个提交都会使用这些信息,它们会写入到你的每一次提交中,
说说Git中 fork, clone,branch这三个概念,有什么区别?
Posted on:2024年1月25日 at 19:21一、是什么 fork fork,英语翻译过来就是叉子,动词形式则是分叉,如下图,从左到右,一条直线变成多条直线 转到git仓库中,fork则可以代表分叉、克隆 出一个(仓库的)新拷贝 包含了原来的仓库(即upstream repository,上游仓库)所有内容,如分支、Tag、提交 如果想将你的修改合并到原项目中时,可以通过的 Pull Request 把你的提交贡献回 原仓库 clone cl
说说你对Git的理解?
Posted on:2024年1月25日 at 19:20一、是什么 git,是一个分布式版本控制软件,最初目的是为更好地管理Linux内核开发而设计 分布式版本控制系统的客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复 项目开始,只有一个原始版仓库,别的机器可以clone这个原始版本库,那么所有clone的机器,它们的版本库其实都是一样的,并没有主
如何检查Javascript中的内存泄漏?
Posted on:2024年1月25日 at 19:19浏览器 Chrome 浏览器查看内存占用,按照以下步骤操作。 1、打开开发者工具,选择 Timeline 面板 2、在顶部的Capture字段里面勾选 Memory 3、点击左上角的录制按钮。 4、在页面上进行各种操作,模拟用户的使用情况。 5、一段时间后,点击对话框的 stop 按钮,面板上就会显示这段时间的内存占用情况。 如果内存占用基本平稳,接近水平,就说明不存在内存泄漏。 反之,就是内存泄
说说你对跨平台的理解
Posted on:2024年1月24日 at 17:18我们知道,cpu 有不同的架构和指令集,上层也有不同的操作系统,一个系统的可执行文件在另一个系统上就是不可执行的,比如 windows 的 exe 文件在 mac 上就不能直接执行。不同的系统就是不同的运行平台。可执行文件是不跨平台的。 不同平台提供的 api 不同,所以代码逻辑可能也不同,需要不同平台单独维护代码。这样就带来了几个问题: 多平台各自开发,怎么保证功能是一致的 多平台各自开发,那是
前端领域有哪些跨端方案?
Posted on:2024年1月24日 at 17:17跨平台指的是跨操作系统,而跨端是指客户端。 客户端的特点就是有界面、有逻辑,所以包含逻辑跨端和渲染跨端。主要的客户端有 web、安卓、ios、iot 设备等。 现在主流的跨端方案有 react native、weex、flutter、kraken 以及各家自研的跨端引擎等。 react native 跨端包括逻辑跨端和渲染跨端,rn 的逻辑跨端是基于 js 引擎,通过 bridge 注入一些设备能
如何迁移仓库,同时保留原有的提交记录和分支?
Posted on:2021年12月26日 at 16:04git clone 仓库地址 cd 项目 git push --mirror 新的仓库地址
说说你对版本管理的理解?
Posted on:2021年10月24日 at 12:11版本控制(Version control),是维护工程蓝图的标准作法,能追踪工程蓝图从诞生一直到定案的过程。此外,版本控制也是一种软件工程技巧,借此能在软件开发的过程中,确保由不同人所编辑的同一程序文件都得到同步 透过文档控制,能记录任何工程项目内各个模块的改动历程,并为每次改动编上序号 一种简单的版本控制形式如下:赋给图的初版一个版本等级“A”。当做了第一次改变后,版本等级改为“B”,以此类推
babel 和 babel ployfill 有什么关系?
Posted on:2021年7月11日 at 14:57先来理解下 babel 到底是做什么的? 简单来讲,babel解决语法层面的问题。用于将ES6+的高级语法转为ES5。 babel polyfill 又是做什么的? 如果要解决API层面的问题,需要使用垫片。比如常见的有babel-polyfill、babel-runtime 和 babel-plugin-transform-runtime。
ESLint 是什么?
Posted on:2021年7月11日 at 14:57ESLint是一个用来识别 ECMAScript 并且按照规则给出报告的代码检测工具,使用它可以避免低级错误和统一代码的风格。如果每次在代码提交之前都进行一次eslint代码检查,就不会因为某个字段未定义为undefined或null这样的错误而导致服务崩溃,可以有效的控制项目代码的质量。 在许多方面,它和 JSLint、JSHint 相似,除了少数的例外: ESLint 使用 Espree 解析
babel-polyfill 有什么用?
Posted on:2021年7月11日 at 14:57Babel默认只转换新的JavaScript句法(syntax),而不转换新的API,比如Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise等全局对象,以及一些定义在全局对象上的方法(比如Object.assign)都不会转码。 举例来说,ES6在Array对象上新增了Array.from方法。Babel就不会转码这个方法。如果想让这个
数据Mock是什么?
Posted on:2021年7月7日 at 00:14Mock 数据是前端开发过程中必不可少的一环,是分离前后端开发的关键链路。 通过预先跟服务器端约定好的接口,模拟请求数据甚至逻辑,能够让前端开发独立自主,不会被服务端的开发所阻塞。 前后端同时开发的时候,后端接口数据没有出来,前端可以mock假数据,模拟开发。 Mock.js 是常用的辅助生成模拟数据的三方库,借助他可以提升我们的 mock 数据能力。
怎么进行移动端的调试?
Posted on:2021年7月7日 at 00:14vConsole:Web 调试面板 vConsole 会在你网页中加一个悬浮的小按钮,可以点击它来打开关闭调试面板,并查看 DOM、Console、Network和 本地存储 等信息。基本可以满足普通前端开发的需求。使用方法也很简单,通过npm安装或者直接在需要的页面引入 js文件 ,然后 new VConsole() 就可以了。 Charles Charles 是一款强大的抓包工具,可以截取包
怎么使用 git 将多次提交压缩成一次提交?
Posted on:2021年7月7日 at 00:12在使用 Git 作为版本控制的时候,我们可能会由于各种各样的原因提交了许多临时的 commit,而这些 commit 拼接起来才是完整的任务。那么我们为了避免太多的 commit 而造成版本控制的混乱,通常我们推荐将这些 commit 合并成一个。 查看提交历史,git log 首先你要知道自己想合并的是哪几个提交,可以使用git log命令来查看提交历史,假如最近4条历史如下: commit 3
什么是 git stash?
Posted on:2021年7月7日 at 00:12通常情况下,当你一直在处理项目的某一部分时,如果你想要在某个时候切换分支去处理其他事情,事情会处于混乱的状态。问题是,你不想把完成了一半的工作的提交,以便你以后就可以回到当前的工作。解决这个问题的答案是 git stash。 再解释什么是git stash。 stash 会将你的工作目录,即修改后的跟踪文件和暂存的更改保存在一堆未完成的更改中,你可以随时重新应用这些更改。
git pull 和 git fetch 有什么区别?
Posted on:2021年7月7日 at 00:12git pull 命令从中央存储库中提取特定分支的新更改或提交,并更新本地存储库中的目标分支。 git fetch 也用于相同的目的,但它的工作方式略有不同。当你执行 git fetch 时,它会从所需的分支中提取所有新提交,并将其存储在本地存储库中的新分支中。如果要在目标分支中反映这些更改,必须在 git fetch 之后执行git merge。只有在对目标分支和获取的分支进行合并后才会更新目标
Git,GitHub与GitLab分别是什么?有什么区别?
Posted on:2021年7月7日 at 00:12Git是一款免费、开源的分布式版本控制系统 GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git作为唯一的版本库格式进行托管,故名GitHub。 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。安装方法是参考GitLab在GitHub上的Wiki页面。 Git,GitHub与GitLab的区别 Git是一种版本控制系统