initx 更方便的脚本引擎
简要
最近发布的 v0.0.12 版本中移除了默认业务功能,转而加入了 插件系统
用了一周开发到目前的状态,我觉得 initx
的功能好的超出了我的预期(自嗨)
我其实很早之前就一直在写一些零散的脚本,把一些复杂的东西简单化,一般是放在仓库,有新环境用到的话要拉代码、配置、执行,感觉还挺麻烦
不管有没有重复造轮子,我非常喜欢 initx
以及享受开发过程 🤣
插件系统
把业务功能的选择交给使用者,将插件的包安装到全局即可,类似
1 | npm i @initx-plugin/git -g |
非常骄傲的宣布,从现在开始 initx
是一个更方便的脚本引擎,它会负责
- 提供方便的入口
- 收集插件
- 收集匹配器命中的执行器
- 处理可能的用户交互
- 执行!🚀
而你,可以专注于写脚本
提供方便的入口
1 | npx initx <something> |
作为免安装脚本,你可以直接使用 npx
执行,虽然它也会被安装在某个角落
收集插件
initx
会先从全局安装目录加载所有依赖,根据包名过滤出插件,动态引入插件代码
收集匹配器命中的执行器
匹配器和执行器是 initx
的两大核心,可以使用字符串和正则表达式,也可以通过数组组合它们
命中后匹配器的介绍和执行器会被收集起来
处理可能的用户交互
如果多个执行器被命中,则会清晰的展示插件名和匹配器介绍,让用户选择执行哪一个
而你
可以专注于写脚本!
starter
插件开发在此起步 initx-plugin-starter
1 | import { type InitxCtx, InitxHandler } from '@initx-plugin/core' |
拉取项目后安装依赖
1 | pnpm i |
得益于 unbuild
使用的 jiti
,可以直接使用 stub
模式开发,无需每次打包
1 | pnpm stub |
最后把本地包全局安装
1 | npm i . -g |
现在只需要专注插件开发,以及测试你的脚本,比如
1 | npx initx start user --name imba97 |
得益于 cac,这个库帮我们处理好了指令,会输出
1 | [ INFO ] initx-plugin-starter is running 🎊 |
祝你用餐愉快 🍴
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 怠惰のコエ - imba久期 BLOG!
评论