新闻详情

新闻详情

首页 / 资讯中心 / 详情

如何在 Node.js 应用中以库形式调用 Repomix 的 runCli 与核心组件

发布时间:2026/9/13 6:23:41来源:尧图网络
如何在 Node.js 应用中以库形式调用 Repomix 的 runCli 与核心组件
如何在 Node.js 应用中以库形式调用 Repomix 的 runCli 与核心组件【免费下载链接】repomix Repomix is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect for when you need to feed your codebase to Large Language Models (LLMs) or other AI tools like Claude, ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok, and more.项目地址: https://gitcode.com/GitHub_Trending/rep/repomixRepomix 通常以 CLI 工具形式使用但它同样是一个 Node.js 库把它作为依赖安装后可以在自己的应用里调用runCli完成打包也可以直接使用searchFiles、collectFiles、processFiles、TokenCounter等核心组件做更细粒度的处理。本文基于仓库内的 Using Repomix as a Library 文档说明如何在 Node.js 应用中完成这条集成路径安装依赖、用runCli打包本地或远程仓库、读取返回的统计结果以及在需要更高控制权时改走核心组件。安装依赖在应用项目中执行npm install repomixpackage.json 中main指向./lib/index.jsexports同时提供了 ESM 与 CJS 入口导入名就是repomix。用 runCli 打包本地目录最简单的集成方式是通过runCli函数文档说明它提供与命令行相同的功能import { runCli, type CliOptions } from repomix; // Process current directory with custom options async function packProject() { const options { output: output.xml, style: xml, compress: true, quiet: true } as CliOptions; const result await runCli([.], process.cwd(), options); return result.packResult; }调用签名是runCli(directories, cwd, options)其中directories是要打包的目录路径示例用.表示当前目录cwd是解析路径时的工作目录options是CliOptions类型的配置对象。result.packResult是判断任务是否完成的核心它包含totalFiles处理的文件数量totalCharacters总字符数totalTokens总 token 数文档注明对 LLM 上下文限制有用fileCharCounts每个文件的字符数fileTokenCounts每个文件的 token 数在应用里可以直接用totalTokens做上下文预算检查用fileCharCounts定位占用最大的文件。处理远程仓库如果应用需要克隆并打包远程仓库把仓库地址放进 options 的remote字段即可import { runCli, type CliOptions } from repomix; // Clone and process a GitHub repo async function processRemoteRepo(repoUrl) { const options { remote: repoUrl, output: output.xml, compress: true } as CliOptions; return await runCli([.], process.cwd(), options); }这里有一个安全相关的前提要注意出于安全考虑远程仓库中的配置文件默认不会被加载。如果希望信任远程仓库的配置需要在 options 中加入remoteTrustConfig: true或设置环境变量REPOMIX_REMOTE_TRUST_CONFIGtrue。不设置时行为是安全的默认值即忽略远程配置。改用核心组件获得更细的控制当runCli的一体化流程不满足需求例如只想要文件级 token 统计而不生成完整输出文件时可以直接组合低层 API。文档给出的组合顺序是搜索文件 → 收集文件 → 处理文件 → 计数import { searchFiles, collectFiles, processFiles, TokenCounter } from repomix; async function analyzeFiles(directory) { // Find and collect files const { filePaths } await searchFiles(directory, { /* config */ }); const rawFiles await collectFiles(filePaths, directory); const processedFiles await processFiles(rawFiles, { /* config */ }); // Count tokens const tokenCounter new TokenCounter(o200k_base); // Return analysis results return processedFiles.map(file ({ path: file.path, tokens: tokenCounter.countTokens(file.content) })); }几点说明searchFiles返回结果中包含filePaths字段示例代码从返回值中解构出它TokenCounter的构造参数是 tokenizer 名称文档示例使用o200k_basesearchFiles与processFiles第二处的{ /* config */ }是配置对象具体字段以 Repomix 的配置项为准可参考 配置文件结构定义 与 searchFiles 实现。入口文件 src/index.ts 列出了库的全部导出除上述组件外还包括pack一体化打包、generateFileTree等树形工具、runSecurityCheck安全检查、loadFileConfig/mergeConfigs/defineConfig配置相关 API、parseRemoteValue等远程 URL 解析工具以及面向打包环境的 worker 导出unifiedWorkerHandler。用打包工具构建时的注意事项如果你要把应用连同 repomix 一起用 Rolldown 或 esbuild 打包文档明确了两类处理必须保持 external、不能打包的依赖tinypool—— 它通过文件路径启动 worker 线程需要拷贝的 WASM 文件web-tree-sitter.wasm→ 拷贝到打包后 JS 所在目录代码压缩功能所需Tree-sitter 语言文件 → 拷贝到REPOMIX_WASM_DIR环境变量指定的目录仓库内有一个可直接参考的完整打包脚本bundle.mjs。验证方式与真实参考实现集成完成后有两个核对点结果字段调用packProject()后检查result.packResult中totalFiles、totalCharacters、totalTokens是否非零且与目录内容量级相符输出文件示例中output: output.xml会在磁盘生成打包结果文件确认其存在即说明主路径跑通。仓库自身也有一个以库形式集成的生产参考Repomix 官方网站用它处理远程仓库实现在 remoteRepo.ts。该文件展示了另一条常见路径——先自行用git clone克隆到临时目录再调用runDefaultAction([tempDirPath], tempDirPath, cliOptions, packProgressCallback)完成打包runCli 内部对默认场景也是走 runDefaultAction适合需要自己控制克隆参数、超时和临时目录清理的场景。适用边界以上 API 与示例均来自当前文档runCli对远程仓库的处理会走remote选项对应的 remote action如果你只需要最少的改动把现有 CLI 调用搬进应用runCli是文档给出的首选入口需要裁剪处理流程时再切换到核心组件组合。【免费下载链接】repomix Repomix is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect for when you need to feed your codebase to Large Language Models (LLMs) or other AI tools like Claude, ChatGPT, DeepSeek, Perplexity, Gemini, Gemma, Llama, Grok, and more.项目地址: https://gitcode.com/GitHub_Trending/rep/repomix创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Rust 交叉编译到 Android 平台:`*-linux-android` 目标完整指南(Tier 2/Tier 3 架构详解) 2026/9/13 8:11:50

Rust 交叉编译到 Android 平台:`*-linux-android` 目标完整指南(Tier 2/Tier 3 架构详解)

Rust 交叉编译到 Android 平台:*-linux-android 目标完整指南(Tier 2/Tier 3 架构详解) 【免费下载链接】rust Empowering everyone to build reliable and efficient software. 项目地址: https://gitcode.com/GitHub_Trending/ru/rust …

阅读更多 →
Codex 语音指令编写指南:用 Voice Directions 精确控制 TTS 语音合成效果 2026/9/13 8:11:50

Codex 语音指令编写指南:用 Voice Directions 精确控制 TTS 语音合成效果

Codex 语音指令编写指南:用 Voice Directions 精确控制 TTS 语音合成效果 【免费下载链接】skills Skills Catalog for Codex 项目地址: https://gitcode.com/GitHub_Trending/skills4/skills 本篇技术指南以本仓库 Speech 技能(skills/.curated/…

阅读更多 →
OLAP技术解析:从多维分析到现代架构演进 2026/9/13 8:11:50

OLAP技术解析:从多维分析到现代架构演进

1. OLAP的现状与争议:死亡还是重生?"OLAP已死"这个说法在技术圈已经流传了十几年,就像"Java已死"一样成为周期性出现的行业迷因。但现实情况是,OLAP(在线分析处理)不仅没有消亡&#x…

阅读更多 →
开5年纯电后算总账:家庭唯一用车,油车为何更让人放心? 2026/9/13 8:11:50

开5年纯电后算总账:家庭唯一用车,油车为何更让人放心?

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
InsForge:建一张表,一键拿到全套 API——PostgreSQL 自动 API 生成零代码指南 2026/9/13 8:11:50

InsForge:建一张表,一键拿到全套 API——PostgreSQL 自动 API 生成零代码指南

InsForge:建一张表,一键拿到全套 API——PostgreSQL 自动 API 生成零代码指南 【免费下载链接】InsForge The all-in-one, open-source backend platform for agentic coding. InsForge gives your coding agent database, auth, storage, compute, host…

阅读更多 →
PLC控制的3×4立体车库系统设计与实现 2026/9/13 8:08:50

PLC控制的3×4立体车库系统设计与实现

1. 项目概述在寸土寸金的现代都市中,34立体车库系统通过PLC智能控制实现了12个车位的全自动管理。这种升降横移式立体车库采用模块化设计,单个车位尺寸为5.3m2.3m1.8m(长宽高),整体结构采用Q235B型钢焊接而成&#xff…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞