技术总结

个人技术探索和落地时的总结

Pnpm 构建 Monorepo

技术总结

Pnpm 构建 Monorepo

最近开始搭建 monorepo 的项目,了解到以下方案: * lerna 有强大完善的依赖管理和构建、打包发布流程,而且 v5 版本将 nx 与 lerna 整合了,提升了性能和速度 * 业界大多使用 lerna + yarn workspace 的方式来管理,yarn 用来管理依赖,lerna 用于管理发布 之前简单使用过 lerna ,不过再加上 yarn workspace , 学习容多、配置多又得折腾,太费劲🤪,暂时搁置。 最终尝试使用单一的 pnpm workspace + changesets 的方式来构建 monorepo,本身我就使用 pnpm 作为包管理工具,目前我的场景简单,pnpm 就已足够。 本文记录自己使用 pnpm workspace 搭建 monorepo

HTTP Web 缓存总结

技术总结

HTTP Web 缓存总结

友情提示:缓存什么的,是完全依赖相关http header头信息来标记和判断的 缓存读取顺序: 首先读取本地缓存,如果条件满足就取本地缓存,否则往后走代理缓存,同理,条件满足就是从代理缓存取资源(可能存在多级代理缓存) 如果一条链路上的资源都不符合,那么就去源服务器获取 缓存优先级:Cache-Control > Expires > Etag > Last-Modified 缓存的分类和优先级 * 强缓存 状态码 200 (比如 200 (from cache)) * Expires 服务器下发的绝对时间,而判断的时候以浏览器时间为准,客户端和服务器有可能会不一样 * Cache-Control 相对时间,以客户端相对时间为准 * 协商缓存 状态码 304 * Last-Modified If-Modified-Since * Etag If-None-Match 强缓存优先级高于协商缓存,强缓存不会询问服务器,直接使用缓存。协商缓存会询问服务器关于文件的可用性 对于传输过程中的中间节点,本文都称为代理服务器,包括proxy、

关于 Webpack 使用 Babel 与 Vite 使用 ESBuild 的一些思考

技术总结

关于 Webpack 使用 Babel 与 Vite 使用 ESBuild 的一些思考

虽然 Vite 是基于 esbuild 构建的,并且 esbuild 在构建速度上有显著优势,但 Webpack 目前并没有直接使用 esbuild 构建的原因涉及多个方面,主要是 架构设计差异、功能需求 和 兼容性 等问题。下面是一些关键的原因: 1. Webpack 的复杂性与扩展性 • Webpack 的高度可扩展性:Webpack 的设计目标是一个 高度可配置和可扩展的打包工具。它提供了丰富的插件和 loader 机制,支持各种复杂的构建需求(如代码分割、热更新、各种资源处理等)。这些功能要求 Webpack 必须具备更细粒度的控制能力,而 esbuild 的设计理念相对简化,主要关注高速构建和基本的模块转换功能。 • Loader 和 Plugin 系统:Webpack 的强大之处在于其 loader 和

Dokploy 一键部署 Plausible

Dokploy

Dokploy 一键部署 Plausible

Plausible 是一款与 Google Analytics 类似的 Web 流量分析工具,相比 Google Analytics 对比如下: * 功能复杂度:GA 功能更强大,适合需要深入分析的用户;Plausible 提供基础的流量分析,简单易用。 * 自托管:Plausible 可以自托管,GA 不支持;GA 存储数据在 Google 服务器上。 * 性能:Plausible 更轻量,只有几 KB,加载更快;GA 可能影响网站性能。 * 隐私保护:Plausible 更注重隐私,不追踪用户数据;GA 会使用 cookies 并可能共享数据给 Google。 我是用 Plausible 来监控我的个人的一些站点,这里使用 Dokploy 来一键部署

Dokploy 托管你的全栈应用

Dokploy

Dokploy 托管你的全栈应用

我是一名开发者,平时会用到以下场景,都可以交由 Dokploy 托管: * 反向代理,之前用 Nginx,现在交给 Dokploy ,用 Traefik 托管 * 常规网站静态部署,比如打包一个 React 项目部署到服务器静态目录 * Nextjs 项目部署,之前依赖 Vercel,现在改为 Dokploy 托管 * NestJS 后端项目托管,直接将服务 Docker 化交给 Dokploy,之前我是用 Railway 托管或者直接在服务器进行 Docker 管理,现在也交给 Dokploy,并且用 Docker 替代 PM2 * 数据库安装与备份,如 Mysql,Postgresql,MongoDB, Redis * 其他: 如 Sentry

Ghost 博客数据迁移

技术总结

Ghost 博客数据迁移

数据迁移导出 我的博客是基于 Ghost 部署的,开源免费,部署在个人服务器的,但是有时候会迁移或者重置服务器,就涉及到博客内容的迁移了。 迁移主要涉及两块,博文内容的导出,以及图片等资源文件的导出。 博文内容导出 在管理后台的 Advanced -> Import/Export -> Migration tools -> Export 里面,点击 Export content,会导出一个 JSON 文件,这个文件里面就是你的博文内容了。 图片媒体资源导出 对于博文里面的图片,视频等媒体文件,主题配置之类的,需要到存放这些内容的目录进行导出。 因为我之前是通过 Docker 部署的 Ghost,在 Docker 配置中可以看到挂载的内容目录。 然后从服务器上对应位置,把资源下载到本地备份 在服务器上先将 content-volumes 目录压缩

Obsidian, Typora 图床自动上传 By Cloudflare R2 + Picgo

技术总结

Obsidian, Typora 图床自动上传 By Cloudflare R2 + Picgo

我主要是为了写博客,以及内容同步到其他平台时,无需迁移图片资源,而且能分担服务器带宽压力,图片直接通过 Picgo 上传到 Cloudflare R2,然后在 Obsidian 或者 Typora 写完文章,复制 Markdown 文本到我的博客直接发布即可,我的博客是使用 Ghost 部署的,地址 meepo.me。 Cloudflare R2 Cloudflare 一直被称为赛博活佛,R2 10G 的 Storage,用不完,根本用不完,而且不用搞备案验证(你们知道我在说什么) 创建 API Token R2 是 Cloudflare 的对象存储服务,首先需要注册 Cloudflare,注意开通 R2 需要绑定信用卡,不用担心,并不是绑定就扣费。 首先进入

从零搭建 ubuntu 服务器及 nodejs项目部署

技术总结

从零搭建 ubuntu 服务器及 nodejs项目部署

大概好几年前写的了,现在搬到博客上,防止丢失😄 **目标:**nodejs服务器配置及本地项目部署到线上的每一个业务流程,把本地可以跑通的nodejs项目,无论是微信小程序的后台,微信公众号的后台,还是手机app的后台,或是网站后台,都可以部署到线上,如果依赖的有数据库(mongodb),以及支持https服务,都可以做到! **服务器版本:**阿里云ECS ubuntu 14.04 64位,1核1G大概能提供2-3w的请求量 服务器地址: 60.205.249.111 服务器用户: captainjack 一、流程 * 域名: 购买域名 -> 域名备案 * 购买服务器 -> 阿里云ECS -> 服务器版本选择ubuntu 14.04 64位 * 配置新用户,禁用root及默认端口 * 配置ssh本地到服务器之间链接(为了不泄露个人信息,

Mac 本机配置远程服务器的免密 SSH 登录

技术总结

Mac 本机配置远程服务器的免密 SSH 登录

在本地电脑上针对服务器进行远程登录配置,是非常必要的操作,不仅可以快速登录服务器,而且在使用 Datagrip 连接远程数据库时,也可以通过 SSH 配置文件的方式,快速进行认证并且连接。  id_ed25519 作为 SSH 密钥对是一种更安全且现代的认证方式,相比传统的 RSA 密钥,它在性能和安全性上都更好。 首先,在阿里云控制台上,进入 ECS -> 网络与安全 -> 安全组,确保它允许来自你 IP 地址的 22端口(TCP) 访问。 生成 SSH 密钥对(id_ed25519) 1. 打开终端,输入以下命令生成 SSH 密钥对: ssh-keygen -t ed25519 -C "

关于微信支付千二、千六手续费

技术总结

关于微信支付千二、千六手续费

申请微信支付,需要先进入微信商户平台开通微信商户,而这里面涉及到一个交易手续费的关键环节。 一般自己注册商户平台时,交易手续费很多都是千6,也就是入账 1000块,就得给微信 6 块钱,如图,通过服务商注册,会能提供千 2 的账号,差距惊人。 我之前有朋友花了 6 万块,让小程序公司给上架了一个商城,也是千 6 的手续费,其实很多人是不知道这里面的细节的。 千二非常普遍,只要通过服务商给你开,千六到千二区间随便调整,而且服务商注册没有任何门槛,只是调整到千二的话,服务商就没有任何佣金了,不过行业里面大家现在基本都是默认千二。 需要注意的是,服务商帮忙开千二,实际上没什么成本,如果他们要收取昂贵的手续费,那么就有些不地道了。 千二代开需要哪些资料 1、营业执照照片, 2、法人身份证正反面 3、商户名称 4、公司对公户账号及具体位置开户行 5、手机号一个(能接验证码的) 6、邮箱号一个(

Ghost 博客部署,我的最爱

技术总结

Ghost 博客部署,我的最爱

♥️ 强烈推荐 Ghost 博客,我的最爱,之前断断续续瞎折腾过几个博客,始终没有找到合适的,中间还一度自己做了个博客的版本,直到我用上了 Ghost blog,我就停止了折腾。 1️⃣ 主题市场很精美且丰富,超过绝大部分竞品 2️⃣ 开源: 可以在自己的 VPS 上直接部署,完全可控 3️⃣ 性能强大,博客编辑,后台设置,功能非常丰富 4️⃣ SEO 友好,支持 Code 嵌入,三方插件集成,如 Stripe, Zapier 等 5️⃣ 邮件订阅支持,Stripe 支付接入,可以对订阅收费 优点 Ghost 是非常完善的博客系统,也是基于 Nodejs 开发的,不仅提供了 Cloud 版本,