Search: #命令行工具

  1. 《unbash:零依赖的 Bash 解析器》

    《unbash:零依赖的 Bash 解析器》

    标签:
    #Web开发 #NodeJs #Bash解析 #TypeScript #AST #命令行工具 #静态分析

    总结:

    文章要点:
    1. 定位清晰:unbash 是一个用 TypeScript 编写的、零依赖的 Bash 解析器,能将 Bash 源码(命令、脚本或嵌入在其他格式中的 shell 代码)解析为带类型和源码位置的 AST,且不执行代码
    2. 适用场景丰富:可用于权限审核、静态盘点脚本中的可执行文件和依赖引用、将 curl 等命令结构化导入、为粘贴的 Bash 代码附加诊断信息、构建可视化解释、以及安全地查找和迁移命令调用
    3. 语法支持全面:涵盖命令、控制流、管道、重定向、赋值、复合语句、参数扩展、进程替换、heredoc、算术表达式等,嵌套命令在参数、数组索引、算术表达式中仍保持结构化
    4. 容错能力强:对于畸形或不完整的输入,会返回尽力而为的部分 AST,并附带带源码位置的错误信息,适合处理编辑器输入或用户粘贴内容
    5. 性能碾压对手:在多个基准测试中,解析吞吐量远超 tree-sitter-bash(约 717 倍)、sh-syntax(约 92870 倍)和 bash-parser(约 275291 倍),包体积仅 80KB 压缩后 19KB
    6. 与竞品差异化明显:相比 tree-sitter-bash 提供的是可执行语法的类型化 AST 而非 CST;相比 sh-syntax 无需 WASM 且 API 更轻量;相比 bash-parser 支持更多 Bash 特性(如 [[ ]]、(( ))、herestrings、process substitution 等)且具备错误恢复能力
    7. 与 shellcheck 的互补关系:unbash 专注于"解析结构",不做语义分析;以下场景推荐用 shellcheck 而非 unbash:
    - 检查变量是否已定义或是否被引用(如未引用变量 $var 可能引发 word splitting)
    - 检测命令是否存在及其参数合法性(如 git --不存在的参数 语法正确但运行会报错)
    - 识别常见陷阱和反模式(如 cat file | grep pattern 可简化为 grep pattern file)
    - 检查权限相关风险(如 rm -rf /$undefined_var 的潜在危险)
    - 提供可操作的修复建议(shellcheck 会直接给出 SC 规则编号和修复方案)
    - 对脚本进行全面的最佳实践审查(POSIX 兼容性、可移植性建议等)

    URL:https://github.com/webpro-nl/unbash GitHub - webpro-nl/unbash: Fast 0-deps bash parser written in TypeScript

  2. 《5 个实用的 npx 辅助工具》

    《5 个实用的 npx 辅助工具》

    标签:
    #Web开发 #NodeJs #命令行工具 #Npx #前端工程化 #代码质量 #Markdown #图片优化 #依赖管理 #拼写检查

    总结:

    文章要点:
    1. cspell:一个拼写检查器,适合快速排查拼写错误,建议搭配配置文件使用自定义白名单,运行方式如 npx cspell **/*.md
    2. markdown-link-check:专门检查 Markdown 文件中的链接是否有效,能帮助防止链接失效,推荐配合配置文件使用
    3. image-guard:作者自己开发的工具,用于自动化近无损图片压缩,也适合在命令行中快速压缩图片,运行 npx image-guard 即可
    4. npm-check-updates:快速检查 package.json 中的依赖是否有更新版本,适合在新仓库工作或手动处理依赖更新时使用
    5. knip:功能比 npm-check-updates 更广,还能检查未使用的文件和导出,但文件和导出检查可能会有误报,运行 npx knip 即可

    URL:https://meiert.com/blog/5-npx-helpers/ 5 Useful npx Helpers