跳到主要内容

javascript Date类型扩展日期格式化方法 DateFormat

· 阅读需 1 分钟
一介布衣
全栈开发者
Date.prototype.Format = function (fmt) { //author: meizz 
var o = {
“M+”: this.getMonth() + 1, //月份
“d+”: this.getDate(), //日
“h+”: this.getHours(), //小时
“m+”: this.getMinutes(), //分
“s+”: this.getSeconds(), //秒
“q+”: Math.floor((this.getMonth() + 3) / 3), //季度
“S”: this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + “”).substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp(“(“ + k + “)”).test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : ((“00″ + o[k]).substr((“” + o[k]).length)));
return fmt;
}

nvm、Node、Yarn 放在一起时,版本边界最好早点说清楚

· 阅读需 3 分钟
一介布衣
全栈开发者

Node.js 项目最容易让人产生一种错觉:只要把 Node 装上、包管理器装上,环境就算齐了。可到了 2020 年左右,团队里同时使用 nvm、Node、Yarn 已经很普遍,这时候真正容易出问题的,不再是某个工具会不会装,而是它们之间的版本边界有没有讲清楚。

本地 Docker 环境越用越乱时,重置和清理要讲顺序

· 阅读需 3 分钟
一介布衣
全栈开发者

Docker 本地环境用久了以后,几乎都会经历一个阶段:旧容器没删干净,历史镜像堆了不少,没在用的 volume 和网络也越来越多。这个时候很多人为了图快,直接一通删除,结果把本来还想保留的数据库数据也一起带走了。环境清理这件事看似只是几条命令,其实很考验顺序感。

排查容器里的环境问题时,docker exec 比重启更有价值

· 阅读需 3 分钟
一介布衣
全栈开发者

有些容器问题并不是“起不来”,而是明明已经在运行,表现却和预期不一样。比如环境变量没生效、工作目录不对、配置文件路径错了、依赖包实际没有安装完整。这个时候如果只会不停重启容器,排查会非常低效。对这类问题来说,docker exec 往往比“再试一次”更有价值,因为它让你直接进入现场。

本地开发用 Docker 时,volume 和 bind mount 该怎么选

· 阅读需 3 分钟
一介布衣
全栈开发者

Docker 用到一定阶段后,几乎都会碰到一个问题:容器里的数据到底是保存在 volume,还是直接绑定宿主机目录。这个选择看起来像是命令层面的细节,实际上很影响本地开发效率。因为它决定了你改代码是否能实时生效、数据库数据是否好迁移、环境重建时会不会把重要内容一起清掉。

Docker 日志排查时,先把 follow、tail、since 这几个选项用顺手

· 阅读需 3 分钟
一介布衣
全栈开发者

本地容器一旦启动失败或者接口突然异常,很多人的第一反应都是先 docker exec 进去看看,或者直接把容器删掉重启。这样做当然有时候也能解决问题,但从排查效率看,并不总是最优。很多容器问题,其实靠 docker logs 就能先把大方向判断出来,尤其是把 followtailsince 这些选项用顺手以后,定位速度会快不少。