meocli
v0.2.3
Published
Node CLI generated with oclif, Integrate Prettier
Readme
meocli
Node CLI generated with oclif, Integrate Prettier, Biome
Dev
<!-- pnpm exec -->
$ pnpm ncu # 检查更新
$ pnpm ncu -u # 升级更新
<!-- demo -->
$ pnpm run dev hello foo
$ pnpm run prod hello foo -f bar
<!-- prettier -->
$ pnpm run dev prettier ./tmp/test.svg --verbose
$ pnpm run dev prettier ./tmp/test.json --config=auto --ignore=auto
$ pnpm run dev prettier ./tmp/test.svg --config=built_in --ignore=autoPrettier
$ pnpm install -g meocli
$ me prettier --help
$ me prettier reset --verbose # 重置Prettier配置
$ me prettier ./test.svg --verbose # 使用prettier格式化文件Prettier.Vscode
pnpm install -g meocli配合vscode插件:emeraldwalk.RunOnSave 保存时自动格式化
配置
.vscode/settings.json添加"emeraldwalk.runonsave"节点,以下为参考配置⤵︎
"emeraldwalk.runonsave": {
"commands": [
{
// prettier
"match": "\\.(txt|ts|js|jsx|tsx|json|html|css|graphql|gql|yaml|yml|md)$",
"notMatch": "node_modules/*$",
"isAsync": true,
"cmd": "me prettier \"${file}\""
},
{
// @prettier/plugin-xml
"match": "\\.(xml|svg)$",
"isAsync": true,
"cmd": "me prettier \"${file}\""
},
{
// prettier-plugin-toml
"match": "\\.(toml)$",
"isAsync": true,
"cmd": "me prettier \"${file}\""
},
{
// prettier-plugin-nginx
"match": "\\.(nginx)$",
"isAsync": true,
"cmd": "me prettier \"${file}\""
},
{
// prettier-plugin-sh
"match": "\\.(sh|env|Dockerfile|properties|gitignore|dockerignore|prettierignore)$",
"notMatch": "\\.(nu)$",
"isAsync": true,
"cmd": "me prettier \"${file}\""
},
{
// no-dot-ext
"match": "Dockerfile$|web.config",
"isAsync": true,
"cmd": "me prettier \"${file}\""
}
]
}Publish
$ pnpm login
$ pnpm build
$ pnpm publishUsage
$ npm install -g meocli
$ me COMMAND
running command...
$ me (--version)
meocli/0.2.3 win32-x64 node-v24.21.0
$ me --help [COMMAND]
USAGE
$ me COMMAND
...Commands
me biome FILEPATHme biome resetme env [FILEPATH]me env apifox [FILEPATH]me hello PERSONme hello worldme help [COMMAND]me irys balance [ADDRESS]me irys download IDme irys fund AMOUNTme irys price [BYTES]me irys resetme irys upload PATHme irys withdraw [AMOUNT]me js clash FILEPATH TEMPLATEPATHme pluginsme plugins add PLUGINme plugins:inspect PLUGIN...me plugins install PLUGINme plugins link PATHme plugins remove [PLUGIN]me plugins resetme plugins uninstall [PLUGIN]me plugins unlink [PLUGIN]me plugins updateme prettier FILEPATHme prettier reset
me biome FILEPATH
Use Biome to format file
USAGE
$ me biome FILEPATH [-c <value>] [-v]
ARGUMENTS
FILEPATH file path that need to be formatted by Biome
FLAGS
-c, --config=<value> [default: built_in] built_in:使用内置规则(默认值), 传入路径则是使用自定义配置,
auto:自动检测项目中的 biome.json
-v, --verbose Show verbose output
DESCRIPTION
Use Biome to format file
支持 JS/TS/JSX/TSX/JSON/JSONC/CSS/GraphQL/HTML/Vue/Svelte/Astro/SVG
Biome 不支持 TOML/SH/Java/Kotlin/SQL/Nginx/PowerShell/Solidity/Motoko/XML(通用) — 这些请用 prettier 命令
EXAMPLES
$ me biome ./src/file.tsx
$ me biome ./src/file.tsx --config ./biome.jsonSee code: src/commands/biome/index.ts
me biome reset
reset biome config file,『~/.meocli/biome.json』
USAGE
$ me biome reset [-v]
FLAGS
-v, --verbose Show verbose output
DESCRIPTION
reset biome config file,『~/.meocli/biome.json』
EXAMPLES
$ me biome reset --verboseSee code: src/commands/biome/reset.ts
me env [FILEPATH]
读取.env环境变量并打印(json格式)
USAGE
$ me env [FILEPATH] [-v]
ARGUMENTS
[FILEPATH] [default: .env] .env文件路径,不传默认值为.env
FLAGS
-v, --verbose Show verbose output
DESCRIPTION
读取.env环境变量并打印(json格式)
EXAMPLES
me env .envSee code: src/commands/env/index.ts
me env apifox [FILEPATH]
读取.env环境变量,输出apifox需要的csv格式
USAGE
$ me env apifox [FILEPATH] [-v]
ARGUMENTS
[FILEPATH] [default: .env] .env文件路径,不传默认值为.env
FLAGS
-v, --verbose Show verbose output
DESCRIPTION
读取.env环境变量,输出apifox需要的csv格式
EXAMPLES
me env apifox .envSee code: src/commands/env/apifox.ts
me hello PERSON
Say hello
USAGE
$ me hello PERSON [-f <value>]
ARGUMENTS
PERSON Person to say hello to
FLAGS
-f, --from=<value> [default: meocli] Who is saying hello
DESCRIPTION
Say hello
EXAMPLES
me hello friend --from oclif
hello friend --from oclif (./src/commands/hello/index.ts)See code: src/commands/hello/index.ts
me hello world
Say hello world
USAGE
$ me hello world
DESCRIPTION
Say hello world
EXAMPLES
$ me hello world
hello world! (./src/commands/hello/world.ts)See code: src/commands/hello/world.ts
me help [COMMAND]
Display help for me.
USAGE
$ me help [COMMAND...] [-n]
ARGUMENTS
[COMMAND...] Command to show help for.
FLAGS
-n, --nested-commands Include all nested commands in the output.
DESCRIPTION
Display help for me.See code: @oclif/plugin-help
me irys balance [ADDRESS]
查询 Irys bundler 上的账户余额
USAGE
$ me irys balance [ADDRESS] [-e <value>] [-k <value>] [-n mainnet|devnet] [-r <value>] [-t <value>]
ARGUMENTS
[ADDRESS] 要查询的地址。不传则查询 ~/.meocli/.env 中配置的私钥对应地址
FLAGS
-e, --env=<value> 自定义 .env 文件路径(默认 ~/.meocli/.env)
-k, --key=<value> 私钥。不传则从 ~/.meocli/.env 读取
-n, --network=<option> [default: mainnet] 网络:mainnet 或 devnet
<options: mainnet|devnet>
-r, --rpc-url=<value> 自定义 RPC URL(devnet 或自定义链时常用)
-t, --token=<value> [default: ethereum] 支付代币,支持的代币请用 me irys 查看
DESCRIPTION
查询 Irys bundler 上的账户余额
EXAMPLES
$ me irys balance
$ me irys balance 0x591B5Ce7cA10a55A9B5d1516eF89693D5b3586b8
$ me irys balance -t solana -n devnetSee code: src/commands/irys/balance.ts
me irys download ID
从 Irys gateway 下载数据
USAGE
$ me irys download ID [--devnet] [-o <value>]
ARGUMENTS
ID Irys 事务 ID(transaction ID)
FLAGS
-o, --output=<value> 保存到文件(不传则打印到 stdout)。目录形式会自动用 ID 作文件名
--devnet 从 devnet gateway 下载(数据留存 ~60 天)
DESCRIPTION
从 Irys gateway 下载数据
EXAMPLES
$ me irys download CO9EpX0lekJEfXUOeXncUmMuG8eEp5WJHXl9U9yZUYA
$ me irys download CO9EpX0lekJEfXUOeXncUmMuG8eEp5WJHXl9U9yZUYA -o ./image.png
$ me irys download CO9EpX0lekJEfXUOeXncUmMuG8eEp5WJHXl9U9yZUYA --devnetSee code: src/commands/irys/download.ts
me irys fund AMOUNT
向 Irys bundler 充值
USAGE
$ me irys fund AMOUNT [-e <value>] [-k <value>] [--multiplier <value>] [-n mainnet|devnet] [-r <value>] [-t
<value>]
ARGUMENTS
AMOUNT 充值金额。支持两种格式:
· 十进制(如 0.05)— 自动换算为原子单位
· 原子单位(如 50000000000000000)— 末尾加 'u' 后缀,如 50000000000000000u
FLAGS
-e, --env=<value> 自定义 .env 文件路径(默认 ~/.meocli/.env)
-k, --key=<value> 私钥。不传则从 ~/.meocli/.env 读取
-n, --network=<option> [default: mainnet] 网络
<options: mainnet|devnet>
-r, --rpc-url=<value> 自定义 RPC URL(devnet 必需)
-t, --token=<value> [default: ethereum] 支付代币
--multiplier=<value> [default: 1.0] gas fee multiplier(特定代币支持)
DESCRIPTION
向 Irys bundler 充值
EXAMPLES
$ me irys fund 0.05
$ me irys fund 50000000000000000u
$ me irys fund 1 -t solana -n devnetSee code: src/commands/irys/fund.ts
me irys price [BYTES]
预估上传指定大小数据到 Irys 的费用
USAGE
$ me irys price [BYTES] [-e <value>] [-f <value>] [-k <value>] [-n mainnet|devnet] [-r <value>] [-t <value>]
ARGUMENTS
[BYTES] 要预估费用的字节数。也可以用 --file 指定文件路径自动计算。100 KiB 以下免费
FLAGS
-e, --env=<value> 自定义 .env 文件路径(默认 ~/.meocli/.env)
-f, --file=<value> 指定文件路径,自动读取字节数(覆盖 bytes 参数)
-k, --key=<value> 私钥(此命令仅读公开接口,可不提供)
-n, --network=<option> [default: mainnet] 网络
<options: mainnet|devnet>
-r, --rpc-url=<value> 自定义 RPC URL(devnet 必需)
-t, --token=<value> [default: ethereum] 支付代币
DESCRIPTION
预估上传指定大小数据到 Irys 的费用
EXAMPLES
$ me irys price 1048576
$ me irys price --file ./myImage.png
$ me irys price 1048576 -t solanaSee code: src/commands/irys/price.ts
me irys reset
Irys 辅助工具:查看支持的代币列表、获取示例配置、验证私钥
USAGE
$ me irys reset [-e <value>] [-k <value>] [-t <value>]
FLAGS
-e, --env=<value> 自定义 .env 文件路径(默认 ~/.meocli/.env)
-k, --key=<value> 私钥。不传则从 ~/.meocli/.env 读取
-t, --token=<value> 指定代币后,会尝试建立连接并打印钱包地址(仅验证私钥是否可用,不发交易)
DESCRIPTION
Irys 辅助工具:查看支持的代币列表、获取示例配置、验证私钥
EXAMPLES
$ me irys reset
$ me irys reset -t ethereumSee code: src/commands/irys/reset.ts
me irys upload PATH
上传文件、目录或文本到 Irys
USAGE
$ me irys upload PATH [--anchor <value>] [--batch-size <value>] [-e <value>] [--index-file <value>] [-k
<value>] [--manifest-tags <value>] [-n mainnet|devnet] [-r <value>] [--tags <value>] [--text] [-t <value>]
ARGUMENTS
PATH 要上传的文件或目录路径,或 --text 模式下的纯文本内容
FLAGS
-e, --env=<value> 自定义 .env 文件路径(默认 ~/.meocli/.env)
-k, --key=<value> 私钥。不传则从 ~/.meocli/.env 读取
-n, --network=<option> [default: mainnet] 网络
<options: mainnet|devnet>
-r, --rpc-url=<value> 自定义 RPC URL(devnet 必需)
-t, --token=<value> [default: ethereum] 支付代币
--anchor=<value> 仅 --text 模式:指定 deterministic anchor 值(默认自动生成)。用于可重复的数据 item ID
--batch-size=<value> [default: 50] 上传目录时并发上传数量
--index-file=<value> 上传目录时指定 index 文件(如 index.html),用于 manifest
--manifest-tags=<value> 上传目录时,添加到 manifest 事务本身的 tags(格式同 --tags)。与 --tags(每个文件的
tag)分开
--tags=<value> 元数据 tags(上传文本 / 文件时直接应用;上传目录时作用于每个文件),格式:
name1=value1,name2=value2
--text 将 path 参数视为纯文本内容上传,而非文件路径(绕过文件系统查找)
DESCRIPTION
上传文件、目录或文本到 Irys
EXAMPLES
$ me irys upload ./myImage.png
$ me irys upload ./dist
$ me irys upload ./myImage.png -t solana --tags type=image,lang=zh
$ me irys upload 'hello irys' --textSee code: src/commands/irys/upload.ts
me irys withdraw [AMOUNT]
从 Irys bundler 提现余额回到链上钱包
USAGE
$ me irys withdraw [AMOUNT] [--all] [-e <value>] [-k <value>] [-n mainnet|devnet] [-r <value>] [-t <value>]
ARGUMENTS
[AMOUNT] 提现金额(十进制)或原子单位(末尾 'u' 后缀,如 1000000u)。搭配 --all 时可省略
FLAGS
-e, --env=<value> 自定义 .env 文件路径(默认 ~/.meocli/.env)
-k, --key=<value> 私钥。不传则从 ~/.meocli/.env 读取
-n, --network=<option> [default: mainnet] 网络
<options: mainnet|devnet>
-r, --rpc-url=<value> 自定义 RPC URL(devnet 必需)
-t, --token=<value> [default: ethereum] 代币(提现只对当前代币余额生效)
--all 提现全部余额(调用 withdrawAll)。指定后 amount 参数可省略
DESCRIPTION
从 Irys bundler 提现余额回到链上钱包
EXAMPLES
$ me irys withdraw 0.01
$ me irys withdraw 1000000000000000u
$ me irys withdraw --all
$ me irys withdraw 0.1 -t solana -n devnetSee code: src/commands/irys/withdraw.ts
me js clash FILEPATH TEMPLATEPATH
修改Clash脚本
USAGE
$ me js clash FILEPATH TEMPLATEPATH [-v]
ARGUMENTS
FILEPATH 目标js文件路径
TEMPLATEPATH template.json配置文件路径
FLAGS
-v, --verbose Show verbose output
DESCRIPTION
修改Clash脚本
EXAMPLES
$ me js clash ./test.js ./template.jsonSee code: src/commands/js/clash.ts
me plugins
List installed plugins.
USAGE
$ me plugins [--json] [--core]
FLAGS
--core Show core plugins.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
List installed plugins.
EXAMPLES
$ me pluginsSee code: @oclif/plugin-plugins
me plugins add PLUGIN
Installs a plugin into me.
USAGE
$ me plugins add PLUGIN... [--json] [-f] [-h] [-s | -v]
ARGUMENTS
PLUGIN... Plugin to install.
FLAGS
-f, --force Force npm to fetch remote resources even if a local copy exists on disk.
-h, --help Show CLI help.
-s, --silent Silences npm output.
-v, --verbose Show verbose npm output.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Installs a plugin into me.
Uses npm to install plugins.
Installation of a user-installed plugin will override a core plugin.
Use the ME_NPM_LOG_LEVEL environment variable to set the npm loglevel.
Use the ME_NPM_REGISTRY environment variable to set the npm registry.
ALIASES
$ me plugins add
EXAMPLES
Install a plugin from npm registry.
$ me plugins add myplugin
Install a plugin from a github url.
$ me plugins add https://github.com/someuser/someplugin
Install a plugin from a github slug.
$ me plugins add someuser/somepluginme plugins:inspect PLUGIN...
Displays installation properties of a plugin.
USAGE
$ me plugins inspect PLUGIN...
ARGUMENTS
PLUGIN... [default: .] Plugin to inspect.
FLAGS
-h, --help Show CLI help.
-v, --verbose
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Displays installation properties of a plugin.
EXAMPLES
$ me plugins inspect mypluginSee code: @oclif/plugin-plugins
me plugins install PLUGIN
Installs a plugin into me.
USAGE
$ me plugins install PLUGIN... [--json] [-f] [-h] [-s | -v]
ARGUMENTS
PLUGIN... Plugin to install.
FLAGS
-f, --force Force npm to fetch remote resources even if a local copy exists on disk.
-h, --help Show CLI help.
-s, --silent Silences npm output.
-v, --verbose Show verbose npm output.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Installs a plugin into me.
Uses npm to install plugins.
Installation of a user-installed plugin will override a core plugin.
Use the ME_NPM_LOG_LEVEL environment variable to set the npm loglevel.
Use the ME_NPM_REGISTRY environment variable to set the npm registry.
ALIASES
$ me plugins add
EXAMPLES
Install a plugin from npm registry.
$ me plugins install myplugin
Install a plugin from a github url.
$ me plugins install https://github.com/someuser/someplugin
Install a plugin from a github slug.
$ me plugins install someuser/somepluginSee code: @oclif/plugin-plugins
me plugins link PATH
Links a plugin into the CLI for development.
USAGE
$ me plugins link PATH [-h] [--install] [-v]
ARGUMENTS
PATH [default: .] path to plugin
FLAGS
-h, --help Show CLI help.
-v, --verbose
--[no-]install Install dependencies after linking the plugin.
DESCRIPTION
Links a plugin into the CLI for development.
Installation of a linked plugin will override a user-installed or core plugin.
e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
command will override the user-installed or core plugin implementation. This is useful for development work.
EXAMPLES
$ me plugins link mypluginSee code: @oclif/plugin-plugins
me plugins remove [PLUGIN]
Removes a plugin from the CLI.
USAGE
$ me plugins remove [PLUGIN...] [-h] [-v]
ARGUMENTS
[PLUGIN...] plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ me plugins unlink
$ me plugins remove
EXAMPLES
$ me plugins remove mypluginme plugins reset
Remove all user-installed and linked plugins.
USAGE
$ me plugins reset [--hard] [--reinstall]
FLAGS
--hard Delete node_modules and package manager related files in addition to uninstalling plugins.
--reinstall Reinstall all plugins after uninstalling.See code: @oclif/plugin-plugins
me plugins uninstall [PLUGIN]
Removes a plugin from the CLI.
USAGE
$ me plugins uninstall [PLUGIN...] [-h] [-v]
ARGUMENTS
[PLUGIN...] plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ me plugins unlink
$ me plugins remove
EXAMPLES
$ me plugins uninstall mypluginSee code: @oclif/plugin-plugins
me plugins unlink [PLUGIN]
Removes a plugin from the CLI.
USAGE
$ me plugins unlink [PLUGIN...] [-h] [-v]
ARGUMENTS
[PLUGIN...] plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ me plugins unlink
$ me plugins remove
EXAMPLES
$ me plugins unlink mypluginme plugins update
Update installed plugins.
USAGE
$ me plugins update [-h] [-v]
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Update installed plugins.See code: @oclif/plugin-plugins
me prettier FILEPATH
Use Prettier to format file,集成:
USAGE
$ me prettier FILEPATH [-c <value>] [-i <value>] [-v]
ARGUMENTS
FILEPATH file path that need to be formatted by Prettier
FLAGS
-c, --config=<value> [default: built_in] built_in:使用内置规则(默认值), 传入路径则是使用自定义配置,
auto:自动检测config file
-i, --ignore=<value> [default: built_in] built_in:使用内置规则(默认值), 传入路径则是使用自定义规则,
auto:自动检测ignore file
-v, --verbose Show verbose output
DESCRIPTION
Use Prettier to format file,集成:
@prettier/plugin-xml
prettier-plugin-toml
prettier-plugin-sh
prettier-plugin-nginx
prettier-plugin-properties
prettier-plugin-java
prettier-plugin-kotlin
prettier-plugin-powershell
prettier-plugin-solidity
prettier-plugin-motoko
prettier-plugin-sql-cst
EXAMPLES
$ me prettier ./tests/test.svg
$ me prettier ./src/file.ts --config ./.prettierrc.yamlSee code: src/commands/prettier/index.ts
me prettier reset
reset prettier config and ignore file,『~/.meocli/.prettierrc.yaml, ~/.meocli/.prettierignore』
USAGE
$ me prettier reset [-v]
FLAGS
-v, --verbose Show verbose output
DESCRIPTION
reset prettier config and ignore file,『~/.meocli/.prettierrc.yaml, ~/.meocli/.prettierignore』
EXAMPLES
$ me prettier reset --verboseSee code: src/commands/prettier/reset.ts
