使用 core-version-manager 解决版本号的问题

最近在写工具处理的时候,想到做这么一个库,用于解决版本号之间的问题,比如打小,比较等问题。常见的比如确定 A/B 两个版本谁比较新,又或者 选出一系列版本中最大的。于是 core-version-manager(名字有点土) Github 怎么使用 $ npm install --save core-version-manager 引入模块; import version from 'core-version-manager' API 详情 »

引入 Brotli 进行 Web Server的压缩

目前我们大多数网站都是启用的 gzip 来进行 资源传输的压缩,这有利于我们更加快速的访问我们的网站;但是除了 gzip 外,我们或许还有别的选项,而且性能会更好,比如 Facebook 便是启用的 Brotli 算法; Brotli Brotli 最初发布于2015年,用于网络字体的离线压缩。Google软件工程师在2015年9月发布了包含通用无损数据压缩的Brotli增强版本,特别侧重于HTTP压缩。新版本还展现了跨平台的性能改进,以及减少解码所需的内存。 与常见的通用压缩算法不同,Brotli使用一个预定义的120千字节字典。该字典包含超过13000个常用单词、 详情 »

使用 concurrently 运行多个 npm 命令

我们平时可能需要同时在一个 npm scripts 中运行多个 npm 命令。我们第一时间想到了 && 。当然大多数情况我们是可以完成既定的需求,因为其实这些都是在同个进程中,如果我们需要运行的命令需要拿到两个进程的的输出,比如我们同时启动两个 server ,不同端口号。 在日常我们经常会遇到一个用于静态资源的服务器,一个是 业务的 Web 服务器,我们可以使用 webpack 的 middleware 来实现,我们也可以单独拆分。 详情 »

记一次 inline-block 在模板渲染引起的异常

最近在做 nunjucks 的 模板替换工作。然后在做 {% for %} 的时候遇到一个问题: {% for item in episodes %} <div {{ item.itemAttr }} class="{{ item.itemClass }}"> <a href={{ item.url }}>{{item. 详情 »

[转] 用 Node.js 实现 BigPipe

原文地址: https://github.com/undoZen/bigpipe-on-node @ undoZen BigPipe 是 Facebook 开发的优化网页加载速度的技术。网上几乎没有用 node.js 实现的文章,实际上,不止于 node.js,BigPipe 用其他语言的实现在网上都很少见。以至于这技术出现很久以后,我还以为就是整个网页的框架先发送完毕后,用另一个或几个 ajax 请求再请求页面内的模块。 详情 »

Node.js process 模块常用属性和方法

如果不是和命令行工具打交道,可能我们很少有机会去用到process模块中的一些方法或者属性。不过如果你要做类似于webpack或者gulp等较为复杂的构建工具,由于bash界面就是和用户直接交流的工具,因此友好的输入输出,完整的提示都非常有必要了。 一张表格大概可以看到process有哪些属性 属性名称 用途 platform 判断当前系统平台 argv 当前进程的命令行参数数组 execPath 当前进程的可执行文件的绝对路径 stdout 指向标准输出 stdin 指向标准输入 stderr 指向标准错误 stderr 指向标准错误 我们可以直接在代码中这样使用 console.log( 详情 »

消除mac下npm全局安装使用sudo命令

可能在我们默认安装node.js的使用,npm安装到的目录大多都在/usr/local/bin 下,我们有的时候全局安装某些模块的时候,会出现类似 EACCES 或者无法创建软链 link permission下面的一些提示 npm ERR! Error: EACCES, open '/Users/chietala/.npm/-/all/.cache.json' 详情 »

使用 Supervisor 保持node服务一直启用(Thinkjs 案例)

很多node程序在退出console后会自动关掉进程,解决方法有很多,诸如 pm2,当然今天主要说下Supervisor。 安装 Debian/Ubuntu: apt-get install supervisor Fedora: yum install supervisor Most other distributions: easy_install supervisor 配置 你可以编辑 /etc/supervisor/supervisor. 详情 »