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:...
久违的暑假
暑假大概有七年没放过暑假了,毕竟打工人没有暑假 辞职后的打算是先放个暑假,转眼也过了一个半月了,盘点一下我的暑假做了什么 Vue Conf看了一场 Vue Conf,就是 Vue 核心团队的大佬们分享一些技术 见到了业内大佬 Anthony Fu(托尼老师)! 还有著名 Rapper(狗头) Evan You(尤大)! 骑行从南京 骑回了家,大概 560 多公里 原因是之前买了个自行车想骑着上下班,但最后也没怎么骑几次,卖了有点可惜,索性就骑回去了 慢悠悠骑的,一共用了 11 天,骑了 9 天,休息了 2 天,感觉把这辈子的自行车都骑完了 找工作骑行中途在宾馆休息的时候,构思了一个个人简介网站 me.imba97.cn 时不时的刷刷各种社区、招聘软件。八月初找到个兼职,目前差不多半天做自己的东西半天兼职 布置了一下办公环境,买了人体工学椅和升降桌,可以罚站了 开源做兼职的时候发现一些需求,写了几个小工具 重构了之前的工具,现在叫 iconfontx,可以拉取 iconfont 样式、转换字体、压缩代码的工具 还有 lodash-imports,配 lodash...
Nuxt Docker 自动化
Nuxt Nuxt 是一个集成了前后端的框架,对于一些小型网站,不需要前后端分离的,是个好的选择 比如最近就做了一个 me.imba97.cn,准备放一些关于我的一些东西 Docker因为涉及到后端,需要 Node 环境,借助 GPT 简单写了个 Dockerfile 1234567891011121314151617181920212223FROM node:18# 创建并设置工作目录WORKDIR /usr/src/app# 复制所有源代码到工作目录COPY . .# 安装 pnpmRUN npm install -g pnpm# 安装项目依赖RUN pnpm install# 构建 NuxtRUN pnpm run build# 暴露端口(默认端口为 3000,可以通过环境变量 NUXT_PORT 配置)ENV NUXT_PORT=3000EXPOSE ${NUXT_PORT}# 启动 Nuxt.js 应用程序CMD [ "pnpm", "start-docker" ] start-docker...
辞职报告
为什么辞职在这个经常能听到大环境不行的时间点,辞职了 去年的年度总结中立了个目标希望今年实现 ——...
写了个页面分享此时此刻我在听的歌
演示因为是个网页,所以可以通过 iframe 分享到各处 页面是 https://test.imba97.cn/playing 原理最近发了篇博客文章:《自建音乐服务 Navidrome》,里面提到可以使用 last.fm 来保存听歌历史 通过这个网站的接口可以拿到播放列表,根据听歌的先后顺序,也有当前是否正在播放的字段 后端让 Chat GPT 用 PHP 写了个程序,功能就是简单的请求接口、10 秒数据缓存 因为 last.fm 接口给的图片国内没法访问,所以图片优先获取 itunes 上的,如果都没图,保底还会有个 icon 前端用 简单写了个前端,10 秒轮询调接口获取最新数据 可以展示加载中、当前未听歌、当前正在听歌状态 用了 UnoCSS,永远的神!论 UnoCSS 实现一个旋转效果能有多简单 1<div i-ph-music-note-simple-duotone h-20 w-20 animate-spin animate-duration-30000></div> 开源 Github:...