跳到主要内容

· 阅读需 3 分钟
Meoo

有时需要提交一次代码,但是有一部分新写上的代码还是半成品,又不舍得删除。或者在切换分支时工作目录和暂存区里那些还没有被提交的修改,它可能会和即将检出的分支产生冲突从而阻止 Git 切换到该分支。

解决方式

git stash 可以解决这个问题。贮藏(stash)会处理工作目录的脏的状态,即跟踪文件的修改与暂存的改动,然后将未完成的修改保存到一个栈上,而你可以在任何时候重新应用这些改动。

· 阅读需 14 分钟
Meoo

一些常用的命令如下,不算全面但是日常对我来说是够用了。

  • git clone url :克隆项目,如需自定义本地文件夹的名称,在 url 之后加个名称即可。
  • git add :这是个多功能命令,可以用它开始跟踪新文件,或者把已跟踪的发生更改的文件放到暂存区,还能用于合并时把有冲突的文件标记为已解决状态等。
  • git rm :要从 Git 中移除某个文件,就必须要从暂存区域移除,然后提交。可以用 git rm 完成,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了。
  • git diff :查看尚未暂存的文件更新了哪些部分。在后面加一个 --staged 参数,将比对已暂存文件与最后一次提交的文件差异。

· 阅读需 2 分钟
Meoo

生产模式构建静态网页时,默认会生成 .map 文件,比较大,并且部署后通过浏览器访问可以在控制台看到开发时的源代码,虽说是方便调试,但是都构建 Production Build 了还能被查看代码总让人心里不太舒服。

配置

可以通过配置 .env 文件,将 GENERATE_SOURCEMAP 设为 false 即可不生成 sourcemap 文件。

创建 .env 文件,并在文件中添加这行代码

GENERATE_SOURCEMAP = false

· 阅读需 1 分钟
Meoo

每一个函数都有这三个方法,平时也不怎么能用到,整的时间长不看真容易迷糊...

function Fn(){}

函数 Fn,可调用 Fn.call(), Fn.apply(), Fn.bind(),下面细说。

const person = {
name: 'Lee',
say: function (greet) {
console.log(`${greet}, I'm ${this.name}`)
}
}
const dog = { name: 'coco' }

person.say('hi') // hi, I'm Lee

person.say.apply(dog, ['woof']) // woof, I'm coco

person.say.call(dog, 'woof') // woof, I'm coco

let person_dog = person.say.bind(dog, 'woof')
person_dog() // woof, I'm coco

相同之处

将调用此函数的 Fn 的 this 指向传入的第一个参数。

不同之处

  1. call 和 apply 立即执行,bind 返回绑定过的函数,需要手动执行。
  2. call 和 bind 传入参数列表,而 apply 则是要求传入一个参数数组

· 阅读需 2 分钟
Meoo

WebP 是谷歌推出的一种可以同时提供有损压缩和透明度的图片格式,但是与 JPEG 或 PNG 相比,它格式可以提供更好的压缩。

如图,我将一个 54KB 的JPG图片,转换成 WebP 格式的图片,最终图片大小仅为 8KB ,压缩了7倍左右,看上去很夸张。确实夸张,这个是因图片而异的,有些图片可以压缩很多有些则压不了这么多,不过这种图片格式确实是比 JPEG 和 PNG 有不少优势,压缩率确实高。

压缩图片截图

在网络上,各类资源文件中,图片仍然是占用流量较大的一部分,浏览的各个网站无论是新闻、营销或是企业官网,都有很多的图片,各大视频网站也都要展示视频的缩略图,看上去几十 KB 的压缩给人带来的体验似乎没啥区别,但是图片展示量大、使用多的情况,就像 B站 这样的情况,那节省的就不是一点半点的流量了,服务器带宽压力也减小了,企业省钱、用户体验增强,两全其美。