{"id":18496443,"url":"https://github.com/nicejade/arya-jarvis-doc","last_synced_at":"2025-10-18T00:02:16.368Z","repository":{"id":43650600,"uuid":"207609408","full_name":"nicejade/arya-jarvis-doc","owner":"nicejade","description":"Arya Jarvis：旨在为开发人员节省更多时间和精力（Document）","archived":false,"fork":false,"pushed_at":"2024-12-29T07:15:32.000Z","size":268,"stargazers_count":24,"open_issues_count":8,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-09T17:10:57.699Z","etag":null,"topics":["arya","check-port","docsify","document","frontend","get-ip","prettier"],"latest_commit_sha":null,"homepage":"https://arya.lovejade.cn/","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nicejade.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-09-10T16:30:34.000Z","updated_at":"2025-02-28T12:46:35.000Z","dependencies_parsed_at":"2024-08-23T15:21:37.786Z","dependency_job_id":"45848cca-0074-43e1-b66d-3ca3725b49ed","html_url":"https://github.com/nicejade/arya-jarvis-doc","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/nicejade/arya-jarvis-doc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicejade%2Farya-jarvis-doc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicejade%2Farya-jarvis-doc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicejade%2Farya-jarvis-doc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicejade%2Farya-jarvis-doc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nicejade","download_url":"https://codeload.github.com/nicejade/arya-jarvis-doc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nicejade%2Farya-jarvis-doc/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262863638,"owners_count":23376449,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arya","check-port","docsify","document","frontend","get-ip","prettier"],"created_at":"2024-11-06T13:29:28.166Z","updated_at":"2025-10-18T00:02:16.360Z","avatar_url":"https://github.com/nicejade.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://arya.lovejade.cn/?utm_source=arya-jarvis-doc\" target=\"_blank\"\u003e\n    \u003cimg width=\"100\"src=\"https://arya.lovejade.cn/icon/android-chrome-192x192.png\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eARYA JARVIS DOC\u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cstrong\u003e\n    Arya Jarvis 旨在为开发人员节省更多时间和精力。\n  \u003c/strong\u003e\n\u003c/div\u003e\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://nodejs.org/en/\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/node-%3E%3D%208.0.0-green.svg\" alt=\"Node Version\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/nicejade/arya-jarvis\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/nicejade/arya-jarvis\" alt=\"LICENSE\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.niceshare.site/#编码开发\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat\" alt=\"Prettier\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://www.jeffjade.com/\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/chat-on%20blog-brightgreen.svg\" alt=\"Arya Jarvis\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://aboutme.lovejade.cn/?utm_source=arya-jarvis-doc\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Author-nicejade-%23a696c8.svg\" alt=\"Author nicejade\"\u003e\n  \u003c/a\u003e\n\u003c/div\u003e\n\n\u003cstrong style=\"font-size: 1.2rem;\"\u003e[English](https://arya.lovejade.cn/#/)  |  中文\u003c/strong\u003e\n\n荀子在《劝学》曰：**君子生非异也，善假于物也**。对于重复而精确性的事物，理想的目标是：有贴心工具加以协助，使得可以用更便捷的方式处理；Github 创建仓库：[ARYA JARVIS](https://github.com/nicejade/arya-jarvis)，即是为此而做的尝试 ── 她**旨在为开发人员节省更多时间、精力以及体力**。而此篇文章的存在，介绍 [ARYA JARVIS](https://github.com/nicejade/arya-jarvis) 的同时，也分享下关于对**善假于物**的理解。\n\n## 故事起源\n\n就目前工作而言，比较多涉及的是 Web 前端这块。为更快能启动一个前端项目，抑或是做其他处理如：测试、构建、发布等，通常做法是在 `package.json` 中配置 `scripts` 脚本命令；然而，在接触一个复杂或者新项目时，如过对 scripts 脚本命令不够了然，则会限制在终端操作的速度。通常的做法是用熟悉的编辑器，打开该文件看下，或者借助 `cat` 命令输出至终端加以查看。所以，很早之前就希望能有一种操作，可以一键以浏览之。久未遇到，也自然就产生了自己写一个的想法，这边是编写 `Arya Jarvis` 的初衷。\n\n截止目前，Arya Jarvis 可以帮着做的事儿，已逐渐多了起来， 是时候可以将其先分享出来，希望有更多人可以一起使用 \u0026 完善她。就如在 [Arya Jarvis README](https://github.com/nicejade/arya-jarvis) 中写到的，我个人是此工具的最忠实的用户；现在编写 Arya Jarvis 之时，也是用她本身来格式美化项目代码，感谢我自己在业余时间自己创造了她，我是如此的喜欢。\n\n## 使用条件\n\n[Node.js](https://nodejs.org/en/)（\u003e = 8. \\*），Npm 版本 5+（更推荐使用 [Yarn](https://www.jeffjade.com/2017/12/30/135-npm-vs-yarn-detial-memo/)。\n\n## 下载安装\n\n```bash\npnpm add -g arya-jarvis\n# OR\nyarn global add arya-jarvis\n# OR\nnpm i arya-jarvis -g\n```\n\n## 如何使用\n\n### 🚀 将当前路径复制到剪贴板\n\n在 MacOS 中，如果你需要在 Terminal 中快速获取当前目录的地址（路径），可以使用以下几种方法：直接在 Terminal 中输入 `pwd`（Print Working Directory）并按回车。这会显示出当前工作目录的完整路径。你可以手动复制这个路径，或者继续下一步将它复制到剪贴板。或创建别名（alias），或使用以下命令将当前目录路径复制到剪贴板：\n\n```bash\npwd | pbcopy\n```\n\n上述种种操作，并没有达到理想中的方便快捷，因此在 `arya` 注入了如下功能，从而实现打印当前路径并拷贝到剪切板 📋 中：\n\n```bash\narya copy:pwd\n# 👏 Or Use Alias\narya pwd\n```\n\n### 🔐 生成随机安全密码\n\n```bash\narya password\n# 👏 Or Use Alias\narya pw\n```\n\n#### Options:\n\n- Length (`-l`, `--length`): 指定密码长度 (default: 8)\n- Special (`-s`, `--special`)：是否要使用特殊字符(default true).\n\nExamples:\n\n```bash\n# Generate 16 character password with all character types\narya password -l 16 -s\n\n# Generate password with only numbers(16) and letters\narya pw -l 16\n\n# Quick generate with default settings\narya pw\n```\n\n如下两个代码美化相关功能，可以支持多种文件，譬如: `.js`, `.vue`, `.ux`, `.less`, `.scss`, `.css`, `.json`, `.md`, `.html`, `.qxml`, `.wxml`。\n\n### 💄 一键美化指定路径下的代码\n\n```bash\narya prettier index.js\n# 👏 Or Use Alias\narya p ./src/**/**/*.js\n# 👍🙌 Or Use Alias \u0026 Wildcard\narya p .\n```\n\n### 🔬 监听并美化指定路径下的代码\n\n```bash\narya watcher index.js\n# 👏 Or Use Alias\narya w ./src/**/**/*.js\n# 👍🙌 Or Use Alias \u0026 Wildcard\narya w .\n```\n\n值得一提的是，本项目代码在开发时，格式美化就使用 `arya w .` 命令。感谢我自己业余时间自己开发此了 `arya jarvis` ，我超级喜欢。\n\n**温馨说明**：[Prettier](https://nicelinks.site/post/5c16083e819ae45de1453caa) 是一个有见识的代码格式化工具；使用它来美化，实在是再好不过，具体可以参见 [使用 ESLint ＆ Prettier 美化 Vue 代码](https://www.lovejade.cn/zh/article/beautify-vue-by-eslint-and-prettier.html)；曾多次为很多前端开发者安利 `Prettier`，却因各种原因，不被接纳 😇； 考虑到其配置可能略对某些人显复杂，也就诞生了一个想法：做一个工具，是开发者开箱即用，领略其中舒爽，可还有拒绝的理由？而如上两个命令即可对此想法的实践。针对微型或临时项目，此工具还是非常实用（对于中大型项目，建议自行在项目中配置）。\n\n### 🌍 用于快速构建本地 Web 服务器\n\n```bash\narya server\n# 👏 Or Use Alias\narya s\n```\n\n**温馨说明**：`arya s`，用于快速构建本地 Web 服务器，这是非常有用的功能；比如说，你想快速下载您电脑上资源至手机，那么即可在该资源目录下，运行 `arya s` 命令，就会以当前目录作为静态网站托管，建立一个 Server，并依据本地 IP（/电脑名）生成地址，只要手机端跟电脑在同一个网段下，即可访问下载；这里更贴心的是，会将对应地址生成**二维码**，并在控制台打印，用手机扫码即可访问。\n\n需要额外补充说明的是，此功能比 `anywhere` 更加强大且贴心，您无需手动指定端口；程序默认端口为 `8080`，如果该被占用，依然可用；它会自动向上递增扫描，直到可用（最大端口号：65535）端口，堪称是真正的：**随启随用的静态文件服务器**。\n\n实际上，这个功能有借助 [lws](https://github.com/lwsjs/lws) 来实现；它的功能当然是不止于上面表达的那一点，这对于开发人员来讲，尤为实用，这将会在后面不断迭代中，继续完善；也有打算出一个文档，以给出充分说明，敬请期待。\n\n### 🌊 一键预览指定 Markdown 文件\n\n```bash\narya markdown README.md\narya markdown ./nice-project/README.md\n# 👏 Or Use Alias\narya m README.md\n```\n\n**温馨说明**：[Markdown](https://github.com/nicejade/nice-front-end-tutorial/blob/master/tutorial/markdown-tutorial.md) 是一种轻量级的「标记语言」，旨在简洁、高效；可以通过简单、易读易写的文本格式，生成结构化的 `HTML` 文档；预览 Markdown 呈现效果，虽然在各类编辑器，都有其解释器插件，但也得额外安装、激活方可；因此有借助 [marked](https://github.com/markedjs/marked) 实现一键快速预览 `Markdown`，并呈现出跟 `Github` 一样的现实效果。\n\n#### 预览 Markdown 选项\n\n##### Watcher (`-w` , `--watch`)\n\n默认情况下，不会监听您指定的 Markdown 文件，您可以通过增加 `-w` 选项来开启监听功能，以实时刷新您的预览页面，参见如下示例：\n\n```bash\narya markdown README.md -w\narya markdown README.md --watch\n```\n\n### ⚡️ 找到您本地 IP 地址并打印出来\n\n```bash\narya ip\n```\n\n**温馨说明**：对于获取本地 IP（以及公网 IP）这一诉求，无论是使用 Mac、Linux 还是 Windows 用户，如果没有特殊配置，也是颇为麻烦的；即便在控制台使用 `ipconfig` or `ifconfig`，得到的结果也是需要一番筛选；而使用 `arya ip` 则可以轻松获取。\n\n### 👀 查看占用指定端口的程序\n\n```bash\narya port 8080\n# Or\narya port 8081\n```\n\n**温馨说明**：同样，在几个不同的平台上，想知晓某个端口（如：8080）被哪个程序所占用，也是需要一番周章的；在 Windows 系统，可以使用 `netstat` 命令，而在其他两个平台，大多数可能会选择 `lsof`；但记忆与操作起来毕竟麻烦，而使用 `arya` 相对就方便很多，可以通过以下命令做下对比：\n\n```bash\n# 适用于 Windows 系统\nnetstat -ano | findstr 8080\n\n# 适用于 Mac Linux 系统\nlsof -i tcp:8080\n\n# 适用于 Mac Linux Windows 系统\narya port 8080\n```\n\n### 📷 为指定文本生成二维码\n\n```bash\narya qrcode \"https://www.jeffjade.com/\"\narya qrcode \"晚晴幽草轩轩主\"\n```\n\n**温馨说明**：此项目集成了[二维码生成器](https://github.com/soldair/node-qrcod)，可以很便捷在控制台，就根据命令，为指定文本生成二维码，并提供保存于本地的功能（需要额外参数 `-s`）；这相比于要在网上搜索在线服务，要方便许多，从节省更多时间角度考量，用 `arya qrcode` 是更好的抉择。\n\n#### 额外参数选项\n\n##### Save (`-s` , `--save`)\n\n```bash\narya qrcode \"https://nicelinks.site/\" -s\narya qrcode \"https://www.lovejade.cn/\" --save\n```\n\n##### Width (`-w`, `--width`)\n\n设定所保存二维码的宽度（跟 `-s` 一起用有效）；\n\n```bash\narya qrcode \"https://nicelinks.site/\" -s -w 200\n```\n\n### ✂️ 尽可能清除终端屏幕内容\n\n```bash\narya clear\n# Or\narya c\n```\n\n在 Mac OS，如果想实现此功能，可以在终端运行 `clear` 命令即可；但这离特别方便，还略有些距离；可以借助 `oh-my-zsh`，在 `.zshrc` 文件中配置命令别名：*alias cls='clear'*；如此一来，运行 `cls` 就足以清除终端屏幕内容；而这在 Windows 系统，就又须另当别论了；这么看来，使用 `arya c` 是蛮不错的选择。\n\n### 🌋 一键批量为文件重命名\n\n```bash\narya rename Your-Specified-Path -n \"nice-links\"\narya rename Your-Specified-Path -n \"nice-links\" --initial 50\narya rename Your-Specified-Path -n \"nice-links\" --initial 50 -s '-'\narya rename Your-Specified-Path -n \"nice-links\" --initial 50 --digits 4\n```\n\n### 🌫 灰阶: 去除图像的颜色\n\n```bash\narya img:greyscale \u003cpath\u003e\n\n# 👏 Or Use Alias\narya igs \u003cpath\u003e\narya igs ./assets/images\narya igs ./assets/images/logo.png\n```\n\n指定图片或其所在的文件夹路径（相对 or 绝对），会将所有支持的图像灰度处理；所有处理过的图片都放在一个新文件夹中：`arya-greyscale-imgs`；支持的图像类型: `.bmp`, `.gif`, `.jpeg`, `.jpg`, `.png`, `.tiff`。\n\n**温馨说明**：注入此功能，也是出于自身需要：在编写[小程序版本「倾城之链」](https://github.com/nicejade/nicelinks-miniprogram)时，在使用官方 `Tabbar` 组件，需要提供 icon 和选中时的 icon；为区分两者不同状态，将默认 icon 置灰，是通用选择。如采取 `PS` 或者 `CSS` 一张张操作，实在有些麻烦，而在网上也未找见有类似批量**灰阶**图片的工具，索性就自己写一个，以方便使用。感谢 [jimp](https://github.com/oliver-moran/jimp) 开源库提供的支持。\n\n### 🌌 为批量图片添加外阴影效果\n\nMac OS 系统上，在获得焦点程序的周边，有一层浅灰色外阴影，使得应用程序看起来略带立体感；其阴影渐进变淡，与毕竟色融合在一起，也使得看起来流畅自然，不突兀。为图片一键添加立体感外阴影，这是一个有价值的工具；请参见如下命令：\n\n```bash\n# arya img:shadow 你的图片所在目录地址\narya img:shadow YOUR-IMGS-DIR-PATH\n# Or\narya ishadow YOUR-IMGS-DIR-PATH\n```\n\n**备注** 此命令有依赖于 [imagemagick](https://imagemagick.org/) 这款软件，因此，在使用之前，您需要手动安装；如果您使用的是 Mac，可以通过如下命令，一键安装（其他平台，可以下载对应软件，参见 [imagemagick download](https://imagemagick.org/script/download.php)）：\n\n```bash\nbrew install imagemagick\n```\n\n关于这个命令的注入，其背后的故事，可以参见文章：[为文章图片添加外阴影效果](https://quickapp.lovejade.cn/how-to-add-shadow-effects-to-image/)。\n\n### 🚝 列出 package.json 中的脚本命令\n\n```bash\narya ls\n# 👏 Or Use Alias\narya l\n```\n\n**温馨说明**：正如前文在**故事起源**中所提及的那般，`arya ls` 这个命令是这个项目的初衷：只为方便知晓前端项目 package.json 中都存在哪些脚本，以方便更快运行。只是在迭代中，越发多的集成了更多普遍可以用到的功能，此功能的存在显得就不是那么闪耀；但，作为引发燎原之势的那一缕星光 🌟，将持久铭记，且常用之。\n\n---\n\n即便已入中年，仍然坚信，只要**主动折腾**，**勤于折腾**，**善于折腾**，相信总能将生活与人生，折腾成自己越发欢喜的模样，对于这近乎无休止的工作，亦是如此。[arya jarvis](https://github.com/nicejade/arya-jarvis) 仍在考虑植入更多有用的功能，如果您有任何需求，您可以告诉我，或在此基础上进行扩展。如果您在使用过程中遇到任何问题，您可以随时向我的反馈。祝：生活幸福，工作快乐。\n\n## 相关链接\n\n- [清风明月轩](https://www.thebettersites.com/?ref=github.com)\n- [逍遥自在轩](https://niceshare.site/?ref=github.com)\n- [晚晴幽草轩](https://www.jeffjade.com/nicelinks?ref=github.com)\n- [静轩之别苑](https://quickapp.lovejade.cn/?ref=github.com)\n- [悠然宜想亭](https://forum.lovejade.cn//?ref=github.com)\n- [静晴轩别苑](https://nice.lovejade.cn/?ref=github.com)\n- [SegmentFault](https://segmentfault.com/u/jeffjade)\n- [X | MarshalXuan](https://x.com/MarshalXuan)\n\n## License\n\n[MIT](http://opensource.org/licenses/MIT)\n\nCopyright (c) 2019-present, [逍遥自在轩](https://www.niceshare.site/?ref=github.com).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicejade%2Farya-jarvis-doc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnicejade%2Farya-jarvis-doc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnicejade%2Farya-jarvis-doc/lists"}