为Express.js编写一个Logger

Express.js JSON JavaScript Node.js

Express.js是Node.js下最基础最灵活的Web服务器。 Express的日志工具有很多,比如默认的访问日志工具morgan, 通用日志工具winston等等。

本文便来发掘一下这些日志工具的优秀特性,并一一给出实现: 对象输出、日期前缀、访问日志,模块名前缀,以及彩色输出等。

Makefile构建前端项目

Shell Linux Makefile Unix awk grep sed

Make是GNU下的构建自动化工具,用于从源文件构建可执行程序和程序库。 由Makefile定义构建依赖关系,运行Make时这些依赖会递归地展开。 可以说Make和Shell是Linux下生存的必备技能,当然还需要一款你热爱的编辑器。

Make还会检查文件修改时间来判断是否需要执行某条依赖。 因此除了程序库外,Make也常常用于自动更新存在文件间依赖的项目。 比如:批量更新网站缩略图

Harttle曾使用过上百个Grunt/Gulp插件,尝试着去体会它们所承诺的那些优雅。 而今Harttle决定重新回到Make的怀抱,在前端为什么需要构建工具? 一文中详述了这一选择的全部理由。

前端为什么需要构建工具?

Makefile Gulp CommonJS Grunt JavaScript 测试 模块化

社区中有不少项目引入GulpGruntWebpack等工具来支持测试和发布流程。 这些构建工具都有着这样的或者那样的缺点,此时Node社区悄悄兴起了一群npm党。 他们认为应该坚决干掉这些构建工具,其坚决程度好不亚于Vim党。

例如 2014 年发布在 keithcirkel 的why-we-should-stop-using-grunt 和 2016 年发布在 infoQ 上的我为何放弃Gulp与Grunt,转投npm scripts。 (抱歉又暴露出国内前端领域的2年落差)

虽然也烦透了Gulp/Grunt,但Harttle坚持认为我们需要构建工具。 本文梳理了Web前端的那些构建需求,整理了Harttle经历过的前端构建工具。 也给出了Harttle的信仰:Makefile

SSH 配置自动登录

Linux RSA SSH Shell TCP Unix X11

SSH 是一个 Linux 下远程登录工具。 可以通过 openssh 软件包来安装,有 BSD 协议的发型版。 如果你尚不了解Shell、终端、虚拟终端、控制台、命令行的概念区别,请参考:Shell的相关概念和配置方法

免密码登录(俗称 SSH 信任关系)可以极大地方便 SSH 的使用, 类似 scp, tmux, X11 forward 的一些操作都会变得更加便捷。 其原理是指定一对公钥私钥,让服务器直接通过公钥识别登录者。 本文记录一次完整的服务器、客户端的配置过程。

Windows 下推荐使用 PUTTY 或 XShell,本文的配置过程可能有 GUI 的配置方式。

全屏预览图片的动画和自适应布局

CSS HTML JavaScript innerHeight jQuery scrollTop 事件 兼容性 动画 横屏

本文探讨如何在Web浏览器中实现兼容性较好的全屏图片浏览控件, 即要支持绝大多数浏览器,适应不同分辨率的移动设备, 以及适应移动端的横屏、竖屏切换。

文中代码用于阐释原理和探讨机制,如果你在寻找拿来即用的第三方库, 请参考这些项目:

CSS 实现 sticky 在底部的页脚

页脚 CSS HTML

最经典的Web页面布局少不了底部的页脚,页脚通常用来显示版权、备案号等信息。 绝对定位到底部的页脚会影响可视区域大小,因而最常见的布局方式是将页脚静态定位(默认行为)。 为了避免页面太小使页脚显示在屏幕中间,可采用增大内容边距和设置大背景图的做法。 然而在大屏幕越来越普及的今天这些方法越来越力不从心。

理想中的页脚应有这样的行为:

  • 当页面不够高时,页脚仍然出现在屏幕底部。
  • 当页面很高时,页脚仍然在整个文档流的末尾(不fix在屏幕下方)。

本文给出一个兼容主流浏览器的纯CSS的实现方案。

上一页 下一页