2016-11-15 17:38:08

十一月随手记

git默认忽略文件大小写

最近一位朋友准备搭我的博客,结果在后台构建时报了Login.vue不存在的错,瞬间打脸啊。查了一下才发现文件在上一个提交中被改成了login.vue,导致构建出错。

讲道理虽然我确实之前就知道git默认忽略大小写,但是让我懵逼的是:我什么时候把这文件名给改了?而且就算重命名不是也该因为git默认忽略大小写,而无法被git diff到,更别说提交了。

一脸懵逼地使用

cp login.vue Login.vue
git rm login.vue
git add Login.vue

把大小写改了回来

http2多路复用与字体

之前多路复用一直没把字体tff文件给复用起来,其他样式文件和图片以及js都是一个TCP解决,苦思冥想也没出来怎么回事。
结果今天才猛然发现,原来是css加载完了才去获取tff,因为加载tff的样式本来就写在css文件中。

为了不让字体请求浪费博客宝贵的首屏加载时间,把css内联进页面,解决,再次加速50ms

tree-shaking

webpack2是第二个支持tree-shaking的库,然而weback1搭配自己写的loader也可以做到tree-shaking,这是体现了loader的强大,毕竟tree-shaking必须保证使用es6 Module,导致打包后的文件想tree-shaking非常非常麻烦

对大型组件库例如Element,自己写loader确实是一个很好的选择,毕竟可以支持webpack1

vue2数据响应与echarts的dom获取问题

vue2搭echarts简直快让我疯了,经常出现传给子组件的数据已经变了,并且computed已经重新计算,但watch却一点反应也没有的情况。

除此之外,echarts初始化时经常获取不到dom的正确宽高,我现在是把包含echarts的组件抽到父组件中,在各种事件中手动挂载才行。有时候还得用nextTick再来resize一下echarts才有效。

现在仍然非常疑惑,当时有个Element组件出了同样的问题,与Element团队大牛一起排了一晚上的错,最后虽然把问题给解决了,但是既不能直接甩锅给echarts,也没有直接证据显示是vue2的错,最奇葩的是我们居然连最小重现都没弄出来。。。。。

好吧,见鬼的事情非常多。

其他的见鬼

  • 写react-native遇到过三次,明明条件为false,但是居然还是进入了条件语句
  • 写安卓时,接口返回int我们直接当了string用,居然一直没出错过,然而做单测时第一个测试用例就报错了

echarts 3.2.0

echarts改了个require文件的大小写,mac上忽略大小写能够require到,linux就GG了

issue链接

又是大小写被坑, 导致CI构建时失败, 锁版本反而锁出问题, 我还能说什么......

UC终于支持vue2了

UC手机浏览器貌似换了内核, 终于把vue2给支持上了.
没修复前, 每个router-link都会被UC当成a标签直接访问, 而不是将其交给vue-router自己处理.
本博客前台单页是SSR服务端渲染的, 本来也并不怕UC之前那么搞, 然而标签页没弄SSR, 这就尴尬了.

解决了博客在chrome手机浏览器上侧边栏无法打开的问题

稍微有点迷, 因为只有chrome手机版不行, 其他浏览器都能够正常打开侧边栏.

然后过了几天, chrome突然就好了, excuse me??

那段时间只有这一个前台相关的文件被我修改, 感觉又见鬼了

vue2 mutation state

vue2的vuex全局状态是mutate的,因此可以直接在组件内部直接修改,this.$store.state.arr.splice(0, 1)

虽然直接修改不很符合状态管理的思想,但是能偷懒这一点我觉得反而是vue相较于react的优点,就拿vue1来说,react能做这种路由trick么?

elastic search大小写

同事接ELK, 上线后发现有一种类型没存进去,我帮忙排错时,发现又是大小写的坑,比了🐶了。

ELK上建的索引,如果有大写的话,会被自动转成小写,然而elasticsearch并没有做,而是直接抛错。
好吧这问题也不大,但蛋疼的是,它抛错是这样抛的:在resposne里设置了个error:true的属性。 excuse me??

function (err, res) {
 if (err) log.error(err) // 啥错也没有💔
 if (res.error) {  
  log.debug(res.items[0]) //每一条都有报错信息
 }
}

感觉本文全部都是大小写的坑,干脆将文章改名成避免大小写错误,从拒绝Mac开始算了

本文链接:https://smallpath.me/post/cut-my-hand

-- EOF --