写了个饥荒食谱速查工具
使用项目地址:https://dst-recipe.netlify.app 基本搜索在下方输入框中输入关键字,可以是名称、拼音、拼音首字母 展示食材基本信息、制作必须食材和条件 多个结果多个结果可以滑动查看 代码分析逻辑上来说是分为两块,一个是食材,一个是食谱 食材每种食材有不同的属性,比如肉度、怪物度、鱼度等等 所以就需要一个基类来表示食材 1234567891011121314151617181920export abstract class IngredientBase extends InstanceClass { protected abstract _name: string /** * 肉度 */ protected _meat?: number /** * 怪物度 */ protected _monster?: number /** * 鱼度 */ protected _fish?: number // ...} 实现类 12345678910import icon from...
写了个不错的匹配器 matchinitx
matchinitxmatchinitx 前身是 initx-collective/initx 项目中的功能,在插件中定义了匹配规则,然后 initx 会收集所有插件,根据用户在命令行输入的关键字,匹配、调用对应的插件 来看看它具体能干嘛 使用1import { type MatcherRules, useInitxMatcher } from 'matchinitx' 基础匹配器匹配器默认规则类型是这样的,为了演示就简化的写一下 123type MatcherRules<T> = T & { matching: (string | RegExp)[]} 这个对象最后会返回给一个处理函数,但会把 matching 移除 所以我们需要自定义一些需要的字段,并且定义好匹配规则 1234567891011121314151617181920interface CustomField { name: string}const rules:...
2024 年度总结
生活继续我的 间歇性踌躇满志,持续性混吃等死。 年初突然动力拉满,开始学各种东西 吉他 学会了平凡之路 快板 学会了哒哒个呤哒呤叮哒 曲艺 学会了《同仁堂》、《挡凉》片段 写了俩脱口秀录了视频 我又觉得我行了 下半年辞职后 骑车从南京出发回老家,骑了 600 公里 工作辞职前是做点餐屏,泸溪河、赛百味之类的,有时候路过门店看到自己做的功能,还挺有成就感的 6 月 30...
initx 存储模块
简单演示initx 的插件如果想在硬盘中存取数据,可以使用上下文中的 store 字段 123456789101112131415161718192021interface Store { foo: string}export default class StarterPlugin extends InitxPlugin<Store> { defaultStore = { foo: 'bar' } matchers = [ { matching: 'start', description: 'Plugin starter' } ] async handle({ store }: InitxContext<Store>, ...others: string[]) { store.foo = 'baz' // ... ...
initx 更方便的脚本引擎
简要最近发布的 v0.0.12 版本中移除了默认业务功能,转而加入了 插件系统 用了一周开发到目前的状态,我觉得 initx 的功能好的超出了我的预期(自嗨) 我其实很早之前就一直在写一些零散的脚本,把一些复杂的东西简单化,一般是放在仓库,有新环境用到的话要拉代码、配置、执行,感觉还挺麻烦 不管有没有重复造轮子,我非常喜欢 initx 以及享受开发过程 🤣 插件系统把业务功能的选择交给使用者,将插件的包安装到全局即可,类似 1npm i @initx-plugin/git -g 非常骄傲的宣布,从现在开始 initx 是一个更方便的脚本引擎,它会负责 提供方便的入口 收集插件 收集匹配器命中的执行器 处理可能的用户交互 执行!🚀 而你,可以专注于写脚本 提供方便的入口1npx initx <something> 作为免安装脚本,你可以直接使用 npx 执行,虽然它也会被安装在某个角落 收集插件initx 会先从全局安装目录加载所有依赖,根据包名过滤出插件,动态引入插件代码 收集匹配器命中的执行器匹配器和执行器是 initx...
initx 更方便的初始化工具
首先initx 是一个免安装脚本,需要 Node.js 环境 一直在初始化一直以来有个让我难受的点,就是一些初始化总会需要手动操作,比如换工作的新电脑、重装系统、创建新仓库,都需要进行大量重复的准备工作,有些甚至还有很多步骤 虽然大部分只需要配置一次,配置的时候查文档,但看完下次就忘了 比如即使想完成一次简单的 Git 提交,你也需要先完成以下步骤 创建并到 用户/xxx/.ssh 目录下复制 SSH 公钥,然后添加到远程仓库用户配置中 1ssh-keygen -t rsa -b 4096 -C "mail@example.com" 设置 Git 用户名邮箱 12git config --global user.name "imba97"git config --global user.email "mail@example.com" 设置 GPG 签名 123git config --global commit.gpgsign truegit config --global user.signingkey...
Cloudflare Axios 请求问题
事情经过之前 Nuxt 项目中使用了 axios 在 Server 端发送请求,包括获取数据和图片两种 但部署到 Cloudflare 后,发现会报错 1the 'credentials' field on 'requestinitializerdict' is not implemented. 应该是 Cloudflare Workers 不支持 credentials 这个字段,但 axios 默认会有 尝试解决Axios Adapter使用 @haverstack/axios-fetch-adapter 可以解决请求问题,这个库会换成 fetch 请求 但换成这个库后,图片会拿不到,所以暂时放弃了 解决方法抛弃 axios,简单封装了个 fetch 请求 commit 0e35ae 后面发现,其实图片是可以拿到的,只是最后要套一个 Buffer.from(responseArrayBuffer) 所以理论上 @haverstack/axios-fetch-adapter...
Github Actions 部署 NuxtHub 项目使用环境变量
事情经过最近在研究 NuxtHub 惹出来的事,部署过 introxd.com 之后爽到了,所以就想把我的简介 imba97.me 也部署到上面 但我的页面会用到加密环境变量,我在 NuxtHub 添加了环境变量,实际 NuxtHub 是调用 Cloudflare 接口,环境变量会互相同步 在本地直接跑部署命令是可以的,但用 Github Actions 部署后,环境变量就没了,打印 process.env 是个空对象 {} 尝试解决命名规则使用 NUXT_ 开头的命名规则,但无效 官方方法使用 Cloudflare 文档 中写的方法,可以拿到 但这种写法只能在 defineEventHandler 中使用 123export default defineEventHandler(({ context }) => { const MY_KV = context.cloudflare.env.MY_KV}); 但我是写了个配置,类似 123const commonConfig = { ...
NuxtHub (Cloudflare) 部署 Nuxt 项目卡住的问题
事情经过很早之前看到过 NuxtHub,但注册了半截,到绑定 Cloudflare 那就暂时弃坑了 最近 Nuxt 用的非常上头,同时也在用 Cloudflare,昨天逛 Github 发现个项目,看到官网下面写着 Deployed on NuxtHub 一时间来了兴趣,想看看 NuxtHub 是个啥 NuxtHubNuxtHub 是一个对接 Cloudflare Workers、Pages 的后台,同时提供 Nuxt 模块,比如数据库、KV、AI 等 可以非常方便的部署包含前后端的 Nuxt 项目 问题把最近在做的 Nuxt 项目部署上去的时候发现,本地打包后用命令部署是没问题的 但用 Cloudflare 部署就会卡在下面日志的地方 123456...15:53:04.900 [info] vite v5.4.6 building for production...15:53:04.930 [info] transforming...15:53:06.277 Deprecation [legacy-js-api]: The legacy JS API is...
阿里图标库工具 iconfontx
iconfontxiconfontx 是一个免安装脚本,能将 iconfont 的样式和字体打包压缩成一个 CSS 文件在本地使用 场景使用 iconfont 图标时,可以直接引入 iconfont 提供的 CSS 文件,但如果线上 CDN 出了问题或用户网络波动,会导致图标加载不出来的问题 所以按我之前公司的做法是,把样式和字体放在本地,并且会手动把字体文件转为 base64,并且每次添加图标后需要重复操作更新本地样式 使用help1npx iconfontx -h 展示帮助信息 12345678910111213Usage: $ iconfontx <url>Commands: <url> iconfont css urlFor more info, run any command with the `--help` flag: $ iconfontx --helpOptions: -o, --output <filename> Output file path (default:...