可圈可点
initx 是一个免安装的脚本引擎,可以使用 npx 执行,通过 插件实现各种功能
初期设计了匹配器和插件的核心逻辑
简单且强大的匹配器来匹配用户输入指令,后来单独抽离成了一个项目 matchinitx
美中不足
initx 可以免安装运行,但你需要全局安装各种插件,这显然是不合理的
虽然有一个插件管理器 @initx-plugin/manager,但它甚至也要先全局安装才能使用,这太傻了
v0.1.0
在这个版本以及之前的几个版本中,陆续解决了以上的问题
首先插件不是全局安装了,而是被安装在用户目录下的 .initx 目录中
同时执行 npx initx 命令时,如果没有 @initx-plugin/manager 插件则会自动安装
现在你可以随时随地尝试
npx initx plugin list如果觉得每次输入 npx 比较麻烦,也推荐全局安装 initx
npm i initx -g解决需求
目前做的几个插件,以解决我自己日常使用需求为主,比如以下几个简单的例子
复制
比如复制 SSH 公钥、GPG 公钥、当前目录路径,你可以轻松解决
# 安装插件
initx plugin add cp
# 复制 SSH 公钥
initx cp ssh
# 复制 GPG 公钥
initx cp gpg
# 复制当前目录路径
initx cp cwdgit 相关
安装
initx plugin add git设置全局用户名、邮箱
initx user foo [email protected]初始化或修改远程仓库地址
initx [email protected]:initx-collective/initx.git
# 带有分支
initx [email protected]:initx-collective/initx.git main没错,直接这样贴上地址就好了,插件会自动判断是初始化还是修改仓库和分支
开启或关闭 GPG 签名
initx gpg true
initx gpg false插件会自动找到 gpg 执行程序的路径,并设置 git 配置
项目管理
安装
initx plugin add pm设置项目目录
# 相对路径
initx pm add .
# 绝对路径
initx pm add /home/foo/projects
# 指定名称
initx pm add frontend /home/foo/projects-frontend
initx pm add backend /home/foo/projects-backend不指定名称默认是 default
基于 github 仓库创建项目到目录
initx pm create user/repo
# 别名
initx pm create user/repo as-name修改默认项目目录
initx use frontend
# 不指定则修改为 default
initx use更多文档可以在 initx-collective 对应的插件仓库中找到
插件开发
initx 插件开发的方向大致分为两个部分
- 以功能为主,比如以上的
cp、git、pm插件 - 以个人为主,因为考虑到需要记各种命令,所以自己开发自己的插件,为自己服务也是一种选择
创建插件可以直接使用插件模板 initx-plugin-starter
开发时使用 stub 模式,这样修改完 ts 代码就不需要手动执行编译
pnpm stub安装当前目录的插件
initx plugin add .可以试试这个命令
initx start评论区域将在可见后加载…