Travis CI 自动部署 Github 项目至远程服务器

12

April

2020

一、目的

简单介绍下 CI/CD 概念:

持续集成 CI:是一种软件开发实践,每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
持续部署 CD:是一种软件工程方法,意指在软件开发流程中,以自动化方式,频繁而且持续性的,将软件部署到生产环境中,快速交付产品。

以我网站的个人作品页为例,是使用 Vue 制作的单页面,修改完成后需要手动编译和部署。

通过 CI/CD 的方式,在项目每次提交后进行自动构建和单元测试。并在检测通过后,自动部署到我的阿里云服务器中实现项目的快速发布。

还可以监听指定分支代码,每次提交后除了运行单元测试,还可以对代码风格进行检测,执行指定的脚本定时任务。一切通过后,自动合并到master分支、再自动部署到服务器进行发布。可以降低人为失误、简化流程,适合敏捷开发和快速迭代。

[ 查看全文... ]

MAMP PRO 配置多站点 404 解决方案

06

April

2020

不推荐:

直接修改 MAMP PRO 软件内的 nginx.conf 文件 /Library/Application
Support/appsolute/MAMP PRO/conf/nginx.conf
。在 location / {} 把方法一的代码添加进去。

此方法虽然有效,但每次 MAMP PRO 内新建/修改站点配置时,都将会被重新覆盖。

[ 查看全文... ]

electron-vue 创建 Electron + Vue 项目

26

March

2020

Electron 是由 GitHub 开发的一个开源框架。它允许使用 Node.js(作为后端)Chromium(作为前端)完成 桌面GUI应用 程序的开发。

我们所常用的 Visual Studio Code 和 Atom 都是基于 Electron 框架。

去年由于业务需求,有考虑将产品迁移至 Electron 来解决 Web 端的部分短板。

当时主要考虑的几点因素:

  • 部分甲方不希望产品通过网页形式展现(要以客户端形式),再单独开发一套桌面应用成本较大
  • 浏览器不支持 H265 原生视频播放
  • 可以使用操作系统 API
  • 产品特性因素,长期挂着 Web 端性能不佳

[ 查看全文... ]

10分钟搞定 Let’s Encrypt 泛域名 SSL 证书

14

March

2020

之前域名都是用的阿里云盾证书服务,因为是一起申请,所以每年更新一下问题不大。最近加两个子域名,正好下月SSL证书又要到期,借此契机换成 Let's Encrypt 证书。

Let's Encrypt 在免费SSL证书里能说最有人气(最大因素在于支持泛域名),但以前需要每3个月手工更新一次,虽有自动更新可不够稳定,如果不注意就比较尴尬。

而现在 acme.shCertbot 都已经比较成熟,很好解决了自动续期问题。至于为什么采用前者,是因为 Certbot 自动更新时会占用443端口,我不想再去重新调整。

并且国内的云盾证书服务都会有申请限制,就拿阿里云的说明为例:个人型SSL证书,保护一个域名。浏览器上有https提示并有绿锁标记。快速签发,适合个人和小微企业,支持个人/企业申请。一个阿里云帐户最多签发20张。我们来划下重点一个阿里云帐户最多20张,也就是一个账号终身只能申请20次,域名/子域多的话,还是消耗的挺快。

有关阿里云的SSL证书的介绍和安装,可以查看我之前的文章:《阿里云 免费SSL证书安装小记》

[ 查看全文... ]

Express 和 Koa 框架对比

01

March

2020

今年3月,可以说是2020年的“新”起点,趁着疫情期间,对过往和未来技术方向做个小整理。

Express 几乎与 Node.js 一样老,也是目前最流行的 Node.js web应用框架,很多应用框架也是基于 Express 构建。Koa 则属于后起之秀,近年来在国内比较热门且主流的框架之一。两者都可轻松的创建 REST APIs、静态服务器等,本文主要就拿这两个框架进行对比。

当然还有:HapiEgg.jsNest.js 等框架,在文章结尾会简单介绍,由于并为实际使用,所以不在本文讨论范围,仅作为扩展内容去理解。

[ 查看全文... ]

MacOS 使用 brew 安装 MongoDB

25

February

2020

简介:

MongoDB 是一种面向文档的数据库管理系统,用C++等语言撰写而成。是一个介于关系数据库和非关系数据库之间的产品,适用于敏捷开发的数据库。

与关系型数据库对比:

  • 数据库(Database) => 数据库(Database)
  • 集合(Collection) => 数据表(Table)
  • 文档(Document) => 记录(Record)

主要区别:数据结构较为松散,类似 JSON 的存储格式,每条记录的表字段可以不同。而关系型数据库每个表的都拥有相同字段。

安装:

由于 MongoDB 宣布不再开源,HomeBrew 也从核心库中移除了 MongoDB 模块 #43770。现在已无法使用 brew install mongodb 命令安装,否则会提示错误 Error: No available formula with the name "mongodb"

[ 查看全文... ]