-
页面禁止滚动
最近做了个图表的东西,图表上有拖拽的交互,在拖拽的时候不小心就会拖动到页面,为了避免这个交互带来的影响,很自然的我们想到了阻止页面滚动常用的伎俩:
document.body.addEventListener('touchmove', e => { e.preventDefault(); }, false);
-
webpack4 抽离公共 css 产生的问题
webpack4 对 css 的默认处理是同步引用的 [s]css 合并成一个文件,其他异步引用的分别单独打成独立文件
但是在 [s]css 文件中使用@import
引用的公共模块并不会被抽离出来合并,这导致引用了大量的重复代码,可以看看 sass-loader 其中一个 issue 对此问题的讨论 -
http 请求被 307 到 https
问题复现
- 先访问
https://a.com
, 该网页 JS 会请求https://api.a.com
接口 - 再访问
http://a.com
, 该网页 JS 会请求http://api.a.com
, 但是查看网络请求发现,http://api.a.com
被强制307
到了https://api.a.com
- 先访问
-
对 peerDependencies 的理解
最近在搞 webpack@4.x 的时候,安装各种插件后总是会出现
UNMET PEER DEPENDENCY
这个东西,它到底是个什么错误呢?在通读了 Domenic Denicola 的这篇文章后,才有了个大致的理解 -
迟迟未到的 babel-preset-env@2
从
babel-preset-env
之前官方 github 的 release 列表中可以看到,距离可追溯的第一个 2.0 的 alpha 版本v2.0.0-alpha.4 (2017-04-07)
已经过去了 382 天,在经历了几十个 alpha 版本和几个 beta 版本后版本号变成了7.0.0-beta.3
, 与之对应的babel-core
也接连发布了多个7.0.0
的 alpha 和 beta 版本,目前也已经到了7.0.0-beta.3
. 猜测接下来应该会和babel@7
一起发布吧 -
再谈 webpack-dev-server 之 proxy
今天在折腾 proxy 代理的时候,遇到了这么个需求:只匹配不包含
/js/
的路径,然后理所当然的认为 proxy 的路径应该是支持正则匹配的,不匹配某个特定组合的字符需要用到零宽度负预测先行断言(?!exp):^(?!.*\/js\/).*$
-
webpack-dev-server 编译文件写入磁盘
了解
webpack-dev-server
的同学们都知道,启用它之后编译生成的文件是存在内存里不落磁盘的,但如果我就是想落磁盘应该怎么操作呢? -
npm Wanted vs Latest
今天在使用
vue-cli
的时候报了更新提示,于是直接npm update vue-cli -g
, 发现并没有任何作用,使用更暴力的npm update vue-cli -g --force
依然没有作用。看了官方提示后执行了npm update vue-cli -dd
来显示更新过程中的细节,发现有这么一句: -
编辑网易邮箱签名的奇幻之旅
今天有个同事接到了编辑邮箱签名的需求,但是遇到了个问题:编辑的好好的,保存后签名预览也没问题,可邮件发出去签名图片就是不显示。
-
腾讯云 centos7 安装 gitlab 及数据迁移
前几天花 360 元撸了 4 年 1 核 2G 腾讯云,最近打算把原来阿里云上的 gitlab 迁过去,主要原因是这东西开起来就吃掉 1G 内存,当初为了能装这个玩意还升配了阿里云,花了不少银子。
-
React 服务端渲染
写了这么多年博客,本来就没几篇,被百度收录的更是少之又少,可能因为之前大部分时间都是为了追求页面效果而使用了前端模板,导致百度蜘蛛过来的时候没有东西可爬吧。所以最近打算搞成前端+服务端共同渲染,实现用户手点页面的时候在前端跳转,直接请求页面则由服务端直接返回拼装好的页面。本篇主要记录使用 react 服务端渲染来实现这个需求所以到的几个问题,所使用的 react 版本为
15.5.4
-
babel-preset-env 前端狗的又一个福音
之前的文章提到我的小伙伴踩中了 babel 的坑,当时只是找到了问题的原因,然后给了一个比较潦草的解决方法:直接引入低版本浏览器不兼容的 API. 但是在实际开发中我们不可能熟知各个浏览器对 API 的兼容情况,导致只能报错之后再去补救,显然这不是个优秀的方案,下面我们就探讨一下如何优雅的避免此类问题的发生。
-
javascript 中的冒号
最近小伙伴又遇到了问题,告诉我以下代码会报错:
['m', 'd', 'h', 'n', 's'].forEach(v => { console.log(v); } //TypeError: Cannot read property 'forEach' of undefined
但是这么写就不会:
const arr = ['m', 'd', 'h', 'n', 's']; arr.forEach(v => { console.log(v); }
-
理解 babel
最近有小伙伴发现某页面在 iOS8 微信环境下显示空白页,跑过来问我可能导致此问题的原因,因为这是个前端模板渲染的页面,所以首先想到的是 js 抛错了,找个 iOS8 来试试吧。
-
nginx 配置小结
刚开始配置多个 server 的时候,发现一个奇怪的现象,比如有两个域名 a.com 和 b.com, 将监听 a.com 的 server 注释掉,居然还能访问到 a.com, 并且是 b.com 的内容
-
开启 https 小记
每次用微信打开我的博客页面,总能看到运营商那个恶心的注入广告,所以近期打算折腾下用上 https. 开始折腾新东西的时候,总是有种不知从哪里下手的感觉,那就先上某乎看看有哪些免费证书吧。
-
搭建 ngrok 实现内网穿透
一直想从外网访问家中的网络,以前听说可以设置端口转发,但必须进入小区的交换机设置,一般运营商是不允许这么做的。后来甚至想过自己用 socket 实现,外网请求阿里云,阿里云 socket 推送给家中内网
-
树莓派 raspberry 连接蓝牙音箱播放音乐的小折腾
前段时间入手了一个树莓派,一直没怎么折腾,最近事情少就打算搞一搞
让我惊奇的是官方提供的系统:RASPBIAN JESSIE(2016-05-27) 版本居然内置了 Nodejs, 虽然版本只有
v0.10.29
后续提到的折腾都是在 RASPBIAN JESSIE 这个版本下
-
单页面 web 应用避免白屏
ajax 的兴起给 web 开发带来了新思路,彻底划清了前后端开发的界线,一些优秀单页面 SPA 也应运而生,然而事情的发展总是有两面性的,单页面应用同样也会有些缺陷,如不利于搜索引擎抓取,首页白屏等,本篇将着重对第二个问题进行分析、解决。
-
npm 的又一记坑
以前开发 npm 包都是直接 publish 到 npm 官网,然后 install 下来使用,遇到有 bug 的情况就要反复上传新版本,很麻烦,后来有小伙伴说可以使用本地目录或者 github 地址进行测试,今天正好打算尝试下,npm 官方文档: