
日常开发的小问题
尹宇星 Kim
这个作者很懒,什么都没留下…
展开
-
Midway FaaS 使用中踩的坑
Midway Faas 是用于构建 Node.js 云函数的 Serverless 框架,可快速部署到阿里云和腾讯云(由于是阿里团队开发的框架,天然更适合阿里云)。下面是我使用 Midway Faas 结合 Vue 开发时,踩到的坑 —— 缺少第三方模块。通过 f package 打包后会发现,.serverless 加载的库只有 @midwayjs/serverless-fc-starter,这时候如果你直接通过 f deploy 发布,调用接口,会报错。报错的内容是缺少 @midwayjs/faa原创 2020-06-29 14:21:40 · 1604 阅读 · 0 评论 -
height: 100vh 在 Android 的 Webview 中失效了怎么办?
移动端原生开发的同学用 webview 嵌了一个 H5 页面,这个页面由于有一个 fix 在底部的按钮。为了在数据没加载完成的时候,按钮也能沉在底部,所以给容器设置了一个默认高度 min-height: 100vh。经过测试,这个写法在 Chrome 的手机模拟器和 iOS 下都表现良好,唯独在 Android 中出了问题 —— 起始的时候,按钮缩在了顶部。排查后发现,在 Android 的 ...原创 2020-04-22 17:43:26 · 2527 阅读 · 2 评论 -
macOS 更新后使用 svn 发生的连环事故
今天要从 svn 上 checkout 一个新文件夹出来,结果意外发生了。首先,控制台告诉我:svn: error: The subversion command line tools are no longer provided by Xcode查找资料知道可以通过 brew 安装来解决:brew install subversion然后事故紧接着又出现了:Running Hom...原创 2020-04-14 17:15:24 · 321 阅读 · 0 评论 -
webpack 中 enforce 的一个实际用法
当我们在 webpack 中集成 eslint 和 babel 的时候,一般会采用如下的写法:module.exports = { // ... module: { rules: [ { test: /\.js$/, exclude: /node_modules/, use: ['babel-loader', 'eslint-loader'] } ...原创 2020-04-08 10:21:31 · 1320 阅读 · 0 评论 -
如何获取所有可访问的 chrome://xxx 地址?
在地址栏中输入 chrome://chrome-urls/,然后回车,就可以看到所有的 chrome://* 的地址列表。原创 2020-04-07 11:44:47 · 758 阅读 · 0 评论 -
Chrome 刷新 DNS 的方法
首先你可以使用下面的命令先刷新操作系统的 DNSmacOSsudo killall -HUP mDNSResponderWindowsipconfig /flushdns这时候回到 Chrome, 会发现 DNS 可能还没生效。原因是 Chrome 为了加快网页的加载速度,会对 DNS 进行缓存(节省 DNS 解析的时间),所以碰到这种情况,你还需要在 Chrome 中清理 DNS ...原创 2020-04-07 11:31:41 · 3246 阅读 · 0 评论 -
有关 gridsome build 以后,页面的访问问题
执行 gridsome build 后默认会在 dist 目录下生成相关的文件。然后将这些文件发布到服务器上就好了。我有个页面的目录是 /forms/apply,当我访问从网站上访问 https://xxx.yyy.zzz/forms/apply/index.html 的时候,首先会看到页面一闪而过,最后在停止在 404 的页面上。经过一番排查,原因是编译后生成的工程是自带路由功能的 ????,所以...原创 2020-03-31 10:38:37 · 286 阅读 · 0 评论 -
因恨生爱,对不可见字符的小应用
今天在代码上做字符串匹配的时候,发现两个“相同”的字符串,=== 竟然是 false。根据经验,知道是字符串里面包含了不可见字符。通过 encodeURIComponent 转换,发现多了 %E2%80%8B 这串字符。从这里可以查找每个编码对应的字符。都是些奇怪的符号,怎么生成这些符号的,我并没有确切的结论。经过和沟通,推测是从 word 复制导致的。网上也查了些资料,碰到这个现象的人...原创 2020-03-30 16:10:52 · 143 阅读 · 0 评论 -
解决 gridsome 编译的时候报 window is not defined 的问题
造成这个问题的原因,是我将 window 相关的代码写在了 created 生命周期里。而 gridsome 本质上也是 SSR,created 是在服务端发生的,服务端没有 window 这个对象。一个简单的解决办法,是将和 window 有关的代码都挪到 mounted 这个生命周期里。...原创 2020-03-30 14:34:43 · 520 阅读 · 0 评论 -
设置前端包管理器 Yarn 的资源镜像地址
首先通过下面的命令查看当前的资源地址yarn config get registry默认会得到 https://registry.yarnpkg.com,接着通过下面的命令将资源地址链接到淘宝的镜像yarn config set registry https://registry.npm.taobao.org...原创 2020-03-26 08:48:42 · 759 阅读 · 0 评论 -
Safari 的点击事件中不存在 event.path 的兼容方法
1. 环境:macOS 版本:10.15.3Safari 版本:13.0.52. 问题描述:在 Safari 的事件中,event.path 不存在。3. 解决办法:可以通过 event.composedPath() 获取。function getEventPath(evt) { return evt.path || (evt.composedPath && e...原创 2020-03-16 11:20:57 · 1274 阅读 · 0 评论 -
Safari 对 new Date 支持情况的小测试
1. 环境:macOS 版本:10.15.3Safari 版本:13.0.52. 问题描述:在 Safari 中,用 JS 执行 new Date('2020-05-07 23:59:59') 会得到 Invalid Date。这时候做一些类似日期比较的操作,会得到错误的结果(一直返回 false)。3. 解决办法:将日期格式改成 2020/05/07 23:59:59 就可以正常...原创 2020-03-16 10:58:03 · 274 阅读 · 0 评论 -
Safari 中 JS 报错:Unhandled Promise Rejection: NotAllowedError
1. 环境:macOS 版本:10.15.3Safari 版本:13.0.52. 问题描述:在 JS 代码中,直接使用代码执行 <audio> 的播放。3. 解决方法这个权限错误是因为 Safari 默认不允许静默的播放音频,需要通过 UI 交互(比如页面上放个按钮)来触发。可以通过下面的流程获得权限:1⃣️ 点击左上角「Safari浏览器」» 2⃣️ 点击「偏好...原创 2020-03-13 13:58:50 · 4408 阅读 · 1 评论 -
Safari 不支持 <option> 用 display: none 隐藏
1. 环境:macOS 版本:10.15.3Safari 版本:13.0.52. 问题描述:如题,就是个兼容问题3. 解决办法:写一个方法,根据条件返回重构后的 options。原创 2020-03-13 11:38:57 · 884 阅读 · 0 评论 -
使用 webpack 打包,图片地址变成了 [object Module]
这个问题是 file-loader 在 5.0.0 的更新中造成的:BREAKING CHANGESminimum required nodejs version is 10.13.0rename the esModules option to esModuleswitch to ES modules by default (the option esModule is true by...原创 2020-03-10 17:14:54 · 1638 阅读 · 0 评论 -
Array.prototype.fill 可得悠着点用
Array.prototype.fill() 在 ES2015 中被列入了 Standard 标准中,因此可以放心使用了。但使用时得注意一个问题,如果你 fill 的内容是一个对象的话,其实是一个传址操作,副作用就是你对其中一个对象操作,会影响到“其他”对象。举了例子const list = new Array(9).fill([])for (let i=0; i<9; i++) {...原创 2020-03-05 11:47:07 · 207 阅读 · 0 评论 -
微信开发之网页授权的坑
微信网页授权的域名只能有2个,项目大了以后注意提前规划。授权的域名不能带下划线。原创 2020-03-01 16:00:05 · 350 阅读 · 0 评论 -
不是公众号里的页面如何在微信里面获得用户的基本信息?
参考资料:微信网页开发 - 网页授权通过微信客户端打开的网页,如果想获取用户的 openId,或者进一步获取用户在微信上的个人信息,你可以这么做:将网页的 URL 通过 encodeURIComponent 进行转码将转码后的地址通过替换 ${url} 拼入下面的字符串:https://open.weixin.qq.com/connect/oauth2/authorize?appid=...原创 2020-02-25 15:45:33 · 341 阅读 · 0 评论 -
我的 UA 检测竟然被 macOS 上的 QQ 浏览器绕过了!
项目里用了一个第三方的浏览器检测模块,主要粗略判别用了何种浏览器(IE、Chrome、FireFox、Safari、Oprea 等,国内常用的 QQ 浏览器和 360 浏览器都会归类为 Chrome)。但最近接到客服反馈,说有用户的 QQ 浏览器通不过检测。沟通后,知道客户的 QQ 浏览器是 macOS 版本的,叫做 QQ 浏览器 Lite。浏览器特性检测不通过,基本判断是 UA (navig...原创 2020-02-19 10:36:52 · 1048 阅读 · 0 评论 -
如何根据路由高亮 Element UI 里的 el-menu-item ?
el-menu 里的 default-active 在刷新页面的时候重置高亮的菜单,导致的结果就是当前页面和高亮的菜单不匹配。可以尝试用下面的代码来解决:➥ Vue<el-menu :default-active="$route.path" class="el-menu-vertical-demo" router> <el-menu-item index="/home"&...原创 2020-02-18 10:38:10 · 2158 阅读 · 2 评论 -
macOS 下修改 hosts 的方法
首先在终端输入下面的命令进入 hosts 文件sudo vim /etc/hosts然后按照下面步骤编辑文件:按 i 进入 Inster 模式进行修改修改完成后按 Esc再按 : 进入命令行最后按 wq 保存并退出最后回到终端输入下面的命令测试修改是否成功:ping xxx.xxx.xxx...原创 2020-02-15 19:03:15 · 440 阅读 · 0 评论 -
解决 Mac 下通过 Ctrl + Z 停止 npm run dev,端口依然占用的问题
在 iTerm2 中通过 npm run dev 启动一个 webpack server,之后通过 Ctrl + Z 停止。当再次启动的时候,会提示端口占用:此时你可能想到通过 lsof -i tcp:3001 查到占用端口的进程的 PID,然后通过 kill 命令杀掉进程。但事实是 node 进程是有守护的,你杀掉一个,立马会重启一个 ????解决办法很简答,把退出从 Ctrl + Z 改成...原创 2020-02-12 10:55:14 · 3416 阅读 · 0 评论