![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
nodejs
文章平均质量分 90
ice breaker
这个作者很懒,什么都没留下…
展开
-
利用Github Action备份Docker容器中的数据库
数据很重要,所以我们要经常备份。那么怎么备份呢?假如我们使用云厂商的数据库,里面已经自带了快照和备份功能了,只要你愿意花钱,就能帮你解决大部分技术问题。它们这些数据库往往是部署在单独一/多台主机实例上,不会放在容器里去跑。为什么?俺也不是专业的运维,俺也不知道。这里给个知乎链接作为参考对于我们个人项目而言,一般不会去购买昂贵的数据库实例,往往云主机容器部署serverlessoss/cdn就能满足绝大部分开发的需求了。很多时候简单的就够用了,然后再加个开源的BAASsupabase。原创 2023-05-15 10:05:10 · 210 阅读 · 1 评论 -
一个混淆Tailwindcss类的工具
是一个原子类优先的css框架,现如今非常的流行。它语义化的类名能够让前端开发人员直观地对元素的样式进行编写和维护。然而这种直观性,有时候也会带来一定的困扰。有时候我们不想让用户或者外界的开发人员也能直观的观测到所有元素的样式,比如我们访问 https://tailwindcss.com , 然后打开开发者工具,检查元素。瞬间,页面上那些元素的排版和样式都能猜测出来,甚至都不需要看右边的style面板。所以,出于让其他人在生产环境中无法直观的看出一个元素的样式,我们就需要对生成的原子类进行混淆。原创 2023-05-05 09:23:40 · 323 阅读 · 0 评论 -
Graphql中我们应该用什么姿势来实现Resolver?
我最近在用Graphql来弥补原先写的RESTFUL接口的一些短板。在实践过程中遇到了一些思考,借着文章抛砖引玉,分享给大家。为了让大家更好的理解本文的思想,我搞了一个简单的案例,源码见附录。首先我们把ER图,变成即为:于是就能直接粗略的把SDLid: Int!tags: [Tag!user: User!id: Int!user: User!id: Int!id: Int!接下来我们就开始定义Query和。原创 2023-04-25 10:00:00 · 511 阅读 · 0 评论 -
这可能是小程序使用 tailwindcss 开发的最佳方案
remrpx笔者对的理解还算比较到位,也写了不少的presetplugin和许多的postcss插件。最近这个月,我发布了的2.x版本,与之前的版本相比,大大增强了我们开发者的开发体验,尤其是类jsx框架相关的体验。接下来,让我们快速开始吧!原创 2023-03-28 14:45:33 · 563 阅读 · 0 评论 -
# 技术详解: 利用CI同步文章以及多端发布
前几天我更新了一篇简单技术总结之后,不少人都对里面的技术细节感兴趣,问我具体是怎么实现的?于是为了给群友答疑解惑,接下来陆续会聊聊我自己的实现,这篇文章的这个方案已经运行了很多年了,很久没有更新,居然有一天会被人问到,也是比较欣喜的。当然,出于自身水平的限制,目前肯定有更好的方案,所以也欢迎提出建议和意见。这个问题第一眼,我们可能会想到这样的解决方案:这些信息可以体现在文件的名称上呀!比如我们写了一篇文章,文件名叫如何让霸道富婆爱上我_20230302_520_true.md。原创 2023-03-03 11:47:51 · 379 阅读 · 0 评论 -
3月来了,给自己做一个简单的nodejs后端技术总结
我又滚回来写文章了,从去年11月底到今年2月底,算起来整整1/4年没有写博客了,自己的博客站都长满了坟头草,我在上面跳舞。在这3月来临之际,我们还是来聊聊技术,就当给自己做个阶段性总结。原创 2023-02-28 21:36:23 · 767 阅读 · 0 评论 -
动态调整web主题(3): 基于tailwindcss插件的主题色生成方案‘
续接[动态调整web系统主题?看这一篇就够了]与[动态调整web主题(2) 萃取篇]笔者一直在思索这个解决方案,更加简单的使用方式,更加流畅的开发者体验。于是在之前的基础上,添加了的使用方式,同时也完善了选择器切换和智能提示,接下来就来介绍一下,如何使用吧。一种基于的模式的动态多主题色快速生成,和管理方案。原创 2022-09-26 10:44:26 · 1498 阅读 · 1 评论 -
优化 Serverless Nestjs 冷起动时间
本文主要介绍的是如何减小部署包的体积,从而减少冷启动时间。在方式上,其实各个Nodejs框架优化冷启动的方式都差不多,这样的方案完全可以无缝同步到其他的框架中,我们只需要选择自己喜欢的打包工具即可。Nestjs默认支持使用webpack进行打包,只需在nest-cli的参数中配置--webpack默认使用根目录下的这样就大大减小了npm包的体积,从而加快了部署和冷启动的速度。这个配置,和官方提供的有些不同,主要是因为官方的场景主要在国外的云厂商,而这个配置是针对阿里云,腾讯云进行配置的。...原创 2022-08-16 00:44:14 · 418 阅读 · 0 评论 -
令人愉快的 Nuxt3 教程 (二): 快速轻松地搭建博客
继 令人愉快的 Nuxt3 教程 (一): 应用的创建与配置 后,我们已经成功的创建了一个 应用,同时已经添加了大量的开发配置。有道是 。接下来本文章将通过快速的搭建一个博客系统来学习 。各位开发者们看到这里也不用觉得害怕,因为这项工程,在众多现成的 包加成下,已经变的非常的简单了。本章节将会主要使用 团队打造的 ,它可以便捷的搭建一个内容管理系统。和那些 / 快速部署静态网站的生成器不同, 它只为我们提供了一套 文件的渲染的机制,和围绕它进行一些数据交互的 和组件,因此这个方案自定义程度很高。现原创 2022-07-07 23:27:37 · 1984 阅读 · 0 评论 -
令人愉快的 Nuxt3 教程 (一): 应用的创建与配置
笔者从 开始接触这个框架,当年的选型,也主要因为它提供了开箱即用的 方案。当然,项目开始这一路走来,遇到的坑非常的多。不过相对于的技术收获也是很大的,因为我们不得不在这趟旅程中,接触许多平常未曾涉及的知识体系,这些对我们前端开发而言,大有裨益。接下来,笔者也将用通俗易懂的文字和图片,带你进入 的世界。 对于 就如同 对于 。它们产生的原因,主要是因为像 , 它们都只是视图层的框架。然而前端应用,从代码编写到最终的真正上线,还要经过一系列流水线师的构建步骤。比如在 中一个 文件就要经过 分发原创 2022-06-29 10:02:04 · 3982 阅读 · 1 评论 -
Code First 探秘: 利用装饰器生成 SDL
Code First 探秘: 利用装饰器生成 SDLCode First 探秘: 利用装饰器生成 SDL前言生成 mermaid SDL观察 SDL 寻找规律设计装饰器实现装饰器实现 Flowchart实现 Node 和 LineTo设计和实现转化器观察和思考实现原始转化器基于原始转化器,实现更好的转化器尾言参考文档前言在日常的开发中,我们经常会遇到许许多多的 SDL( schema definition language 模式定义语言)。比如我.原创 2022-05-25 20:13:00 · 83 阅读 · 0 评论 -
玩转 serverless devs 的三种部署方式
玩转 serverless devs 的三种部署方式serverless-devs 是一个开源的 Serverless 应用全生命周期管理工具。笔者作为一名 Serverless 应用开发者,对国内的阿里云FC,腾讯云SCF都有一定的了解。接下来我将在此文中介绍: 如何使用这个工具,来把同一个应用,通过不同的方式,部署到阿里云函数计算中。文章中使用的示例项目为一个 nestjs 应用,运行环境为 nodejs,源代码见附录。这三种部署方式,由于部署目标平台都为阿里云,统一使用 阿里云函数计算(FC.原创 2022-05-09 13:44:57 · 1219 阅读 · 0 评论 -
一起编写个多用途 Github Action 吧
一起编写个多用途 Github Action 吧前言快速开始0. 从模板初始化项目1. 在根目录添加 action.yml2. 创建入口 index.ts3. 获取参数以及 github 上下文4. 在你的 main 函数填入逻辑5. 把结果打包输出到指定目录6. 发布到 github marketplace开始进阶之旅0. 条件编译1. 代码分割2. 添加条件变量,并统筹 action 和 npm 包的写法3. 重载获取参数4. 重载获取 Octokit 实例..原创 2022-04-06 22:42:47 · 287 阅读 · 0 评论 -
玩转Markdown(2) —— 抽象语法树的提取与操纵
文章目录玩转Markdown(2) —— 抽象语法树的提取与操纵前言AST 不是银弹普遍的 ASTMarkdown AST构建 `mdast`转化 `markdown` 字符串解析 `markdown` 字符串添加目录TOC更多操作实战自动生成 `markdown` 案例玩转Markdown(2) —— 抽象语法树的提取与操纵前言上一篇 玩转Markdown —— 数据的分离存储与组件的原生渲染 发布,转眼已经鸽了大半年了。最近在操纵 mdast 生成 md 文件的时候,心血来潮,把 玩转Markd原创 2022-03-24 09:29:23 · 590 阅读 · 0 评论 -
`tailwindcss jit` 与各大框架的融合
tailwindcss jit 与各大框架的融合把 tailwindcss JIT 思想带入小程序开发吧!书接上文 让小程序开发进入 tailwind jit 时代!到今天为止已经,距离第一版已经发布了 19天了。这 19 天内,在许多人的帮助和支持下,添加了许多的 feature 和修复了许多的 bug.现在到 1.1.5 版本的发布 weapp-tailwindcss-webpack-plugin,已经不只是一个 webpack-plugin 了。接下来让我们大概看一下有哪些改进吧。适.原创 2022-02-22 22:43:08 · 396 阅读 · 1 评论 -
让小程序开发进入 `tailwind jit` 时代
让小程序开发进入 tailwind jit 时代!把 tailwindcss JIT 思想带入小程序开发吧!笔者几个月前写了一个 tailwindcss-miniprogram-preset 预设,可是这个预设方案,可操作性非常的小,也不能兼容 tailwindcss v2/v3 的 Just in time 引擎,同时在写法上也有一定的变体。于是笔者又设计了一个方案,并最终实现了 weapp-tailwindcss-webpack-plugin。相比原先 preset or postcss 方.原创 2022-02-07 11:30:47 · 1323 阅读 · 4 评论 -
动态调整web主题(2) 萃取篇
动态调整web主题(2) 萃取篇自从写完 动态调整web系统主题? 看这一篇就够了! 这篇文章之后,一直想把这篇文章中的思路提炼出来,发布成一个 npm 包。这周正好有空编写了 tailwind-css-variables-theme-generator, 这个包就是之前思路的一个总结,里面有比较详细的使用文档。针对之前思路的一些改进原先在 之前那篇文章 里提到过 scss 与 js 通信的方法,主要依靠 webpack 的 :export 关键字,从而导出一个 js 对象。现在有了更加高效的解.原创 2022-01-16 13:28:02 · 233 阅读 · 0 评论 -
动态调整web系统主题? 看这一篇就够了
动态调整web系统主题? 看这一篇就够了一种构建灵活的系统页面主题方案前置技术点阅读此篇文章前,最好有下列知识css 基础知识dart-sass 预处理器编程webpack 以及 postcsstailwindcss 含有 jit 的 v2/v3前言我们在日常生活中,不论是访问网站,手机App,还是小程序,时常会用到 切换主题 这个功能。它能够为用户提供一定的自定义显示界面的能力,同时手机系统级别的主题也能够更换,比如 light(明亮模式) 和 dark(黑暗模式)。那么如何.原创 2021-12-19 18:32:22 · 239 阅读 · 0 评论 -
TailwindCSS v3 发布, JIT成为默认引擎
TailwindCSS v3 发布, JIT成为默认引擎TailwindCSS v3 正式版发布了,这是一个为 JIT 而生的版本,它移除了原先的 AOT 引擎,把 JIT 作为默认的引擎。接下来我们来看看它有哪些新的特性吧。更强的即时编译引擎更加强大的即时编译引擎, 带来了巨大的性能提升的同时,也解锁了任意值(arbitrary values)和更强的变体(variant)功能。举个例子,原先我们经常把多个修饰符样式这样写 sm:top-[50px] sm:flex ,现在我们可以把他们全部组合.原创 2021-12-13 11:41:02 · 986 阅读 · 0 评论 -
tailwindcss and postcss for 小程序第二个大版本发布啦
安装与配置小程序使用 tailwindcss 只需三步:第一步 - 安装yarn add -D tailwindcss@latest postcss@latest autoprefixer@latest tailwindcss-miniprogram-preset@latest# ornpm install -D tailwindcss@latest postcss@latest原创 2021-11-27 13:30:16 · 721 阅读 · 0 评论 -
simple-cloudbase-router 发布了Beta版本
前言继simple-cloudbase后, simple-cloudbase-router 也提上了开发日程。在笔者使用它们2个npm包,迁移了2个小程序的所有云函数后,发布了 Router 的 0.1.0-beta 版本。Function as Application这个包的设计思路主要参考了 koa-compose 并利用 event 建立一套中间件分发机制,可以说专为云开发而定制的。和 sim原创 2021-11-22 22:16:27 · 532 阅读 · 0 评论 -
simple-cloudbase助力小程序云开发
simple-cloudbase 是一套助力于小程序云开发的工具链。它使用非常的简单,配置也非常少,专注于改善小程序云开发的开发体验。同时,吸收了现代化的Nodejs项目的特性,使得它支持 js(cjs,esm) 和 typescript ,还支持路径别名 alias, 多个云函数共享的 npm 包,代码压缩等等特性。而且,现有的云开发项目,想要迁移进来也是非常简单的。它也能够一键式的生成部署文件,让我们开发者不需要再去微信ID原创 2021-11-11 09:42:35 · 129 阅读 · 0 评论 -
Nuxt3 & Serverless 尝鲜之旅
前言Nuxt3 这个月刚出没多久,目前还在 beta 阶段,难以上生产环境。官方也推荐我们的 Nuxt2 项目,先迁移到 Nuxt Bridge 来进行一个平滑的过渡。不过我们还是有必要预先体会一下 Nuxt3 与 Nuxt2 之间的异同点,来为我们的项目预先累积一些迁移知识。Quick Start执行命令: npx nuxi init nuxt3-appNodejs 版本最低为 ^14(原创 2021-10-24 16:12:06 · 954 阅读 · 1 评论 -
websocket入门案例: 构建微信扫小程序码登录系统
概览WebSocket 想必各位前后端开发都不陌生 , 这种基于TCP的全双工通信协议,比起 HTTP long-polling(长轮询) 来说控制开销少,实时性强。它通过 HTTP/1.1 协议的101状态码进行握手。所以我们使用 nginx 这类来处理它的时候,需要配置协议升级,到 HTTP/1.1版本。而为了创建Websocket连接,我们通过客户端发出请求,之后服务器进行回应,这个过程通常称为 handshaking。案原创 2021-10-16 18:48:06 · 375 阅读 · 0 评论 -
icebreaker手把手教你定制小程序码
前言小程序菊花码,相比与普通的二维码,辨识度高,一看就知道拿微信扫。默认情况下,我们可以自定义生成码的 参数, 路径, 大小, 自动或手动配置线条颜色,底色是否为透明 这些配置项。然而,这些配置项往往是无法满足我们的定制化需求的。举个例子,我们需要在不破坏 小程序码 可识别性的情况下,把中间的 Logo 替换掉,怎么做呢? 接下来就由笔者手把手来教你。梳理思路我们先要理清楚这个问题的本质。这个其实就是个 图像原创 2021-09-27 13:17:49 · 738 阅读 · 0 评论 -
抛砖引玉(3): 微信云开发最佳实践
抛砖引玉(3): 微信云开发最佳实践概览微信云开发是一个打通了微信生态的BaaS (后端即服务)平台,开发方便,快捷,计费友好,适合个人开发者,以及小团队使用。它主要由 云数据库,云存储,云函数,用户身份验证还有 云托管 组成,其中 云函数/云托管就是我们的后端服务了。这篇文章也主要聊一聊它们工程化的最佳实践。云函数微信云开发里的云函数,本质上是拥有微信天然鉴权 SCF。它也属于腾讯云 serverless 体系。所以 原创 2021-09-22 17:53:25 · 266 阅读 · 0 评论 -
玩转Markdown —— 数据的分离存储与组件的原生渲染
玩转Markdown —— 数据的分离存储与组件的原生渲染前言最近笔者把之前写的文章(markdown)数据,全部同步到数据库里,来交给多端去实时渲染。在同步的过程中,却出现了一些问题。笔者这里举个例子,让大家有所感受:<!-- 这是一份markdown文件 -->---author: icebreakermusic: title: '喜欢寂寞' artist: '苏打绿' &nb原创 2021-09-16 16:02:14 · 231 阅读 · 0 评论 -
Github Actions: submodule 下公私有仓库授权和通信
Github Actions: submodule 下公私有仓库授权和通信先来看一个场景在 Github 有一个项目 ,简要的结构如下简单解释一下这张图:这个项目,由一个公有项目和一个私有项目组成,通过 git submodule 2者之间链接在了一起。它们都有很多的 Actions , 比如:deploy 负责发布任务。push 负责主动推送link给各大搜索引擎。sync 负责解析 markdown 并通过 md5 摘要比对,同步修改到远程数据库里。action trigger .原创 2021-09-10 14:22:44 · 833 阅读 · 0 评论 -
serverless 降低冷启动时间的探索 - 服务端打包 node_modules
serverless 降低冷启动时间的探索 - 服务端打包 node_modules本篇文章,不涉及自定义镜像的部署方式冷启动我们知道, 在 serverless 场景下,函数的冷启动时间, 是和上传代码包的体积大小相关的。代码体积越小,拉取代码速度越快,冷启动时间自然就短了。对我们 nodejs 开发者来说,在工程里,往往占据巨大体积的,不是我们自己写的代码,而是在 node_modules 中依赖各种包。尤其是某些npm包作者,不会正确使用 .npmignore , .gitignore .原创 2021-09-07 00:40:50 · 379 阅读 · 0 评论 -
增强原生小程序开发,构建 tailwind + postcss + scss 最小化工具链
增强原生小程序开发,构建 tailwind + postcss + scss 最小化工具链前言书接上回 tailwindcss 小程序定制化之旅我们知道 uni-app 和 tarojs 在最终打包成小程序运行的时候,都是使用的 webpack,所以在这 2 个框架中,我们可以使用 *-loader 轻而易举的赋予它们这方面的能力。但是,假如我们使用的是原生开发呢?原生开发的选项使用微信开发工具的小伙伴们,肯定注意到,在 项目详情 -> 本地设置 中,有上传代码时 样式自动补全,自动压.原创 2021-09-01 13:39:00 · 1007 阅读 · 1 评论 -
tailwindcss 小程序定制化之旅
tailwindcss 小程序定制化之旅前言tailwindcss 太好用,怎么在小程序里用?小程序编写的 标签,class,还有 css选择器 的支持程度都和 H5 不一样,所以我们要针对小程序目前的实现,去定制化 tailwindcss以便来兼容 uni-app, taro 和 原生开发定制化 tailwindcss小程序到底有哪些限制呢?我们要从哪几个方向对 tailwindcss 进行定制呢?1. 不能用特殊字符的 class在 view text 的 class 写特殊字符,在.原创 2021-08-30 16:40:07 · 1400 阅读 · 2 评论 -
在Serverless部署proxy助力前端开发
#! https://zhuanlan.zhihu.com/p/402874502在Serverless部署proxy助力前端开发前言我们前端开发人员,在开发中,经常会遇到跨域问题。跨域问题实际上是浏览器自个加的限制,主要目的就是为了保障用户信息的安全,详见浏览器的同源策略例如,前端页面在本地起在8080端口,起的后端部署在本地3000 端口,8080 发送 xhr 到 3000,结果就因为跨域策略挂了。这时候我们通常会使用 2 种方式来帮我们解决:一种 服务端设置 CORS 策略来帮我原创 2021-08-24 15:37:26 · 167 阅读 · 0 评论 -
Serverless Components 使用迁移到 Web 函数快速指南
Serverless Components 使用迁移到 Web 函数快速指南前言很多人对 Serverless 感兴趣,但是却不知道怎么入门本篇文章,不提任何概念,简单粗暴的告诉大家使用和迁移的方法,以期快速享受到 Web 函数 带来的诸多好处。快速使用一句话,无论我们使用什么框架,只要它提供 http 监听服务,我们就可以快速部署到 Web函数 上。安装环境首先安装 nodejs,然后安装 @serverless/componentsyarn global add @serverles.原创 2021-08-06 14:20:56 · 116 阅读 · 0 评论 -
Web 函数自定义镜像实战:构建图象处理函数
Web 函数自定义镜像实战:构建图象处理函数本篇文章写作于 2021.07.23前言作为一名前端工程师,我们经常会在 H5, 或者小程序中,使用 Canvas 来处理或生成图片。不过在有些禁用 javascript 场景下,我们往往需要在服务端,预先把图片处理好,再返回给不同的前端进行使用。这篇文章,主要借用一个自定义装饰 Github markdown 文件的函数, 来给大家介绍,如何在腾讯云SCF上,多快好省的搭建一个图象处理函数。Requirements看这篇文章之前,建议同学们可.原创 2021-07-23 21:55:14 · 183 阅读 · 0 评论 -
再探 Web Function - 用数据阐释优势
再探 Web Function - 用数据阐释优势上一篇文章: 初探 SCF 的 Web function 和 Custom image前言最近腾讯云SCF云函数 , 公测了 Web函数 ,这种函数类型专注于 Serverless Web 服务场景。相比于原先的事件(Event)函数 , Web函数转换链路短,性能损耗也较低。原先Event函数:Api网关Http请求转换成SCF函数事件,事件再在SCF内部转化成Http请求交给Web框架处理现在Web函数在Api网关那里,直接把Http请.原创 2021-07-08 22:46:21 · 95 阅读 · 0 评论 -
抛砖引玉(2): Cloudbase Framework 助力改善微信云开发的体验
#! https://zhuanlan.zhihu.com/p/382756909抛砖引玉(2): Cloudbase Framework 助力改善微信云开发的体验本文基于 CloudBase CLI 1.7.0 & CloudBase Framework 1.8.1如有建议和意见,欢迎提出 (2021.06.21)前言书接上回 抛砖引玉:一种改善微信云开发 , 开发者体验的思路那篇文章,主要解决的是,公共逻辑代码的复用问题,和公共npm包的问题而手段则是通过 rollup 这类原创 2021-06-22 00:39:20 · 151 阅读 · 0 评论 -
初探 SCF 的 Web function 和 Custom image
初探 SCF 的 Web function 和 Custom image一篇 Hello world,初步介绍这2个新功能如何使用 (2021.06.10)文中这2个功能也很快要全区域公测了前言最近腾讯云SCF最新内测了Web functionCustom image这两个功能,笔者内测申请通过了,就兴致勃勃的尝试了一下顺便聊聊它们的历史和出现的原因Web function过去在 Web function 出现之前我们在编写 SCF 函数 去处理 http 请求的时候,往往.原创 2021-06-11 00:38:07 · 123 阅读 · 0 评论 -
使用 Github Actions 对 Serverless Framework 进行持续化集成
前言不熟悉 jamstack 的朋友可以先看一下这篇文章 什么是jamstack笔者本来想写一篇 Jamstack 实战,技术上主要是以 SSG + COS + CDN + Serverless Framework + GitHub Actions 来实现的然而发现内容有点多,主要分为以下几块:前端的框架预渲染和静态生成对象存储源站和内容分发网络Serverless Components website 组件与 其他的后台服务组件使用 GitHub Actions 做持续集成感觉每一原创 2021-05-30 01:25:28 · 310 阅读 · 0 评论 -
serverless framework 模块化部署
serverless framework 模块化部署文章仅代表作者本人的认知,如有谬误,欢迎指正。文章建议配合 @serverless/components 源码 食用本文使用的示例代码 Forked from second-state/tencent-tensorflow-scf这个仓库可以直接部署成一个 Serverless 的 AI 推理函数,很有意思书接上回@serverless/components 代码简析默认的模块化部署方案官方有关于变量使用的文档和示例app: ecomm原创 2021-05-11 23:10:16 · 248 阅读 · 0 评论 -
@serverless/components 代码简析
@serverless/components 代码简析文章仅代表作者本人的认知,如有谬误,欢迎指正。本篇文章建议配合 @serverless/components 源码 食用前言对于我们使用 Serverless Framework 的开发人员来说 sls 无疑是最常用的命令了然而,当我们翻开 serverless 的源码一看,就会发现,cli 入口处实际上做了一个分支选项const componentsV1 = require('@serverless/cli')const compon原创 2021-05-10 23:44:22 · 167 阅读 · 0 评论