用 Jest 单元测试基于 Vue 的项目

为一个基于 Vue 的项目搭建测试框架,有两个比较成熟的选择,Mocha + Webpack + Karma,或是 Jest。 前者也是 vue-cli 默认脚手架里的测试方案,我们之前的项目也用了它,实际使用起来,感觉成也 Karma,败也 Karma,配置起来不是很顺手,导致测试必须在完整打包后才能进行,测试...

在 Typescript 中继承 Error 对象

通过 Typescript class 继承 Error 实现自定义错误类型时,遇到了一个坑。 1class MyError extends Error {} 但是运行起来: 123const err = new MyError()err instanceof Error // trueerr...

使用 Object.create(null) 创建空对象

使用对象字面量形式时,隐式地创建了一个以 Object.prototype 作为原型的对象。 以下两种方式等同。 123var o1 = {}var o2 = Object.create(Object.prototype) 更省事的方法 1var o3 = Object.create(null...

typed vue mixins

转到用 Typescript 写 Vue 应用以后,经过一轮工具链和依赖的洗礼,总算蹒跚地能走起来了,不过有一个很常用的功能 mixin,似乎还没有官方的解决方案。 既想享受 mixin 的灵活和方便,又想收获 ts 的类型系统带来的安全保障和开发时使用 IntelliSense 的顺滑体验。 vuejs 官方组...

ES6 Class 和 Babel 6 在 IE <= 10 时候的一个坑

写 ES6+ 一定逃不开 babel,也避不开调试 babel 生成的一些代码。 当输入一段 ES6 Class 代码时: 123456789101112131415161718192021class Person { static baseName = 'Person' static speakF...

给开发减压的 gulp.watch 配置

Gulp 的文件监听使用了 gaze,如果只看了 Gulp 的 API 文档可能会漏掉一些参数。 Gulp 文档 中提到: gulp.watch(glob[, opts], tasks) 12345optsType: ObjectOptions, that are passed to gaze. options ...

Holy Awesome Spacemacs

又名:多年 Vim 用户笑迎 Spacemacs

前端 Log 小记

曾经有一个出现bug的页面出现在我面前,我没有珍惜,直到用户关掉页面了,才后悔莫及。

[译] 使用重构件(Codemod)加速 JavaScript 开发

语言特性升级,代码风格最佳实践变变变,各种 Lint 工具的报告分分钟逼死强迫症。用 Facebook 提供的基于 AST 变换的工具,轻松处理批量文件。

[译] Javascript 姿势提升简略

成为一个更好的 Javascript 开发者。代码组织,Linting,测试。