nargo-parser 0.0.0

Nargo parser component
Documentation
# Nargo: The Future of Frontend Engineering

<div align="center">
  <img src="https://trae-api-cn.mchost.guru/api/ide/v1/text_to_image?prompt=modern%20rust%20frontend%20tool%20logo%20with%20blue%20and%20orange%20gradient%2C%20minimalist%2C%20professional&image_size=square_hd" alt="Nargo Logo" width="200" height="200">
  <h3>⚡ One for All, All in One ⚡</h3>
  <p>基于 Rust 全栈哲学的下一代前端调试与构建器,重新定义前端工程化体验</p>
</div>

## 🎯 为什么选择 Nargo?

Nargo 不仅仅是一个构建工具,它是对前端工程化链路的重新思考。我们抛弃了对外部命令(Git, Husky, Lint, Docker)的依赖,转而使用 Rust 原生实现,打造一个极致快、极致轻、零配置的单二进制环境。

### 🚀 核心优势

- **⚡ 极致性能**:基于 Rust 的高性能实现,启动速度比传统工具快 10 倍以上,内存占用减少 60%
- **🔒 类型安全**:前后端类型自动同步,消除类型错误,提升代码质量
- **🛠️ 全栈集成**:无缝衔接 Rust 后端与 TypeScript 前端,实现真正的全栈开发体验
- **🎨 零配置**:智能默认配置,开箱即用,同时支持高度定制化
- **🌐 生态友好**:兼容现有的前端工具链,支持主流框架和库
- **💻 跨平台**:单一二进制文件,支持 Windows、macOS、Linux 等多种平台

## 📊 与其他产品对比

| 特性     | Nargo    | Vite      | Rollup    | Webpack         |
| ------ | -------- | --------- | --------- | --------------- |
| 启动速度   | ⚡⚡⚡ (瞬时) | ⚡⚡ (快速)   | ⚡ (一般)    | ❌ (缓慢)          |
| 内存占用   | 📦 (轻量)  | 📦📦 (中等) | 📦📦 (中等) | 📦📦📦 ( heavy) |
| 类型检查   | ✅ (内置)   | ❌ (需插件)   | ❌ (需插件)   | ❌ (需插件)         |
| 测试支持   | ✅ (内置)   | ❌ (需配置)   | ❌ (需配置)   | ❌ (需配置)         |
| Git 集成 | ✅ (原生)   | ❌ (需外部工具) | ❌ (需外部工具) | ❌ (需外部工具)       |
| 全栈类型桥接 | ✅ (原生)   | ❌ (不支持)   | ❌ (不支持)   | ❌ (不支持)         |

## 🚀 核心理念

### 1. CaaS (Compiler as a Service)

Nargo 深度集成 `rustc_interface`,将编译器能力服务化,为前端开发提供前所未有的编译体验。

- **瞬时冷启动**:利用增量编译与常驻内存的编译器 Session,启动速度比传统工具快 10 倍以上。
- **智能热更**:不仅支持 TypeScript 的 HMR,更是实现了 Rust 后端的智能增量重载,让全栈开发体验无缝衔接。
- **高级优化**:内置多种编译优化策略,自动选择最佳编译配置,平衡开发速度与构建性能。

### 2. RaaS (Runtime as a Service)

Nargo 提出了 **Runtime as a Service** 的概念,彻底革新前端开发环境。

- **无感环境**:开发者无需关心 Node.js、Bun 或 Deno 的版本和配置。Nargo 内置了高性能运行时服务,为前端提供即时的类型桥接(Type Bridge)与 Mock 能力。
- **类型即服务**:通过 `nargo bridge`,Rust 后端的结构体实时转换为 TS 定义,让前后端类型契约成为一种实时服务,彻底消除类型不一致问题。
- **按需加载**:运行时能力按需动态注入,确保开发环境始终处于最轻量状态,内存占用比传统工具减少 60%。

### 3. All in One Binary

Nargo 将所有前端工程化工具整合到一个二进制文件中,告别繁琐的依赖管理。

- **原生 Git 审计**:不调用 `git` 命令,直接通过 `libgit2` 读写 `.git` 目录,速度提升数倍,操作更稳定。
- **原生 Hooks 管理**:彻底替代 Husky,使用 Rust 原生实现的 Git Hooks 引擎,配置更简单,执行更高效。
- **零依赖 Monorepo**:内置 Workspace 任务并行编排器,支持混合项目的 HMR,让大型项目的开发体验同样流畅。
- **内置 Linter**:集成高性能 Rust 实现的代码检查工具,实时提供代码质量反馈,无需额外配置。

## 🛠️ 快速开始

### 基础命令

```bash
# 启动开发服务器 (支持混合热更新)
nargo run dev --hybrid

# 同步前后端类型
nargo bridge

# 构建生产版本
nargo build

# 类型检查
nargo check

# 运行测试
nargo test
```

### 核心命令详解

#### 🔨 构建系统 (`nargo build`)

Nargo 的构建系统采用 Rust 原生实现,提供极致的构建性能和可靠性:

- **智能增量构建**:只重新构建变更的文件,大幅提升构建速度
- **多线程并行构建**:充分利用多核 CPU,构建速度比传统工具快 3-5 倍
- **自动代码分割**:智能分析依赖关系,生成最优的代码分割策略
- **Tree Shaking**:自动移除未使用的代码,减小最终 bundle 体积
- **生产环境优化**:内置多种生产环境优化策略,包括代码压缩、资源优化等

#### ✅ 类型检查 (`nargo check`)

Nargo 内置高性能类型检查器,提供实时、准确的类型反馈:

- **实时类型检查**:在开发过程中实时进行类型检查,提前发现类型错误
- **增量类型检查**:只检查变更的文件,大幅提升检查速度
- **智能类型推断**:提供更智能的类型推断能力,减少类型注解的需要
- **跨文件类型分析**:分析整个项目的类型关系,提供更准确的类型检查结果
- **与编辑器集成**:与 VS Code 等编辑器深度集成,提供实时的类型错误提示

#### 🧪 测试系统 (`nargo test`)

Nargo 内置完整的测试系统,支持多种测试类型:

- **单元测试**:支持 TypeScript 和 Rust 代码的单元测试
- **集成测试**:支持前后端集成测试,验证完整的功能流程
- **端到端测试**:内置端到端测试能力,模拟用户操作测试整个应用
- **测试覆盖率**:自动生成测试覆盖率报告,帮助提高代码质量
- **并行测试执行**:多线程并行执行测试,大幅提升测试速度

### Git 操作

```bash
# 原生 Git 状态查看
nargo git status

# 安装原生 Git Hooks
nargo hooks install

# 提交代码 (内置提交信息规范检查)
nargo git commit -m "feat: add new feature"
```

### 高级功能

```bash
# 生成类型文档
nargo document

# 分析构建性能
nargo analyze
# 导出构建配置
nargo config export
```

## ✨ 特性亮点

- **极致性能**:基于 Rust 的高性能实现,启动速度快,内存占用低,编译效率高。
- **零配置**:智能默认配置,开箱即用,同时支持高度定制化。
- **全栈集成**:无缝衔接 Rust 后端与 TypeScript 前端,实现真正的全栈开发体验。
- **类型安全**:前后端类型自动同步,消除类型错误,提升代码质量。
- **生态友好**:兼容现有的前端工具链,支持主流框架和库。
- **跨平台**:单一二进制文件,支持 Windows、macOS、Linux 等多种平台。
- **内置 Git 工具**:原生 Git 操作,无需依赖外部 Git 命令。
- **内置 Hooks 管理**:替代 Husky,提供更高效的 Git Hooks 管理。
- **内置 Linter**:实时代码质量检查,提升代码质量。
- **内置测试系统**:完整的测试能力,确保代码质量。

## 🎯 使用场景

### 🌟 全栈 Rust + TypeScript 项目

Nargo 特别适合全栈 Rust + TypeScript 项目,提供无缝的开发体验:

- **实时类型同步**:Rust 后端结构体自动转换为 TypeScript 类型定义
- **混合热更新**:同时支持 Rust 后端和 TypeScript 前端的热更新
- **统一构建流程**:使用同一套工具链构建前后端代码

### 🏢 大型 Monorepo 项目

Nargo 内置零依赖 Monorepo 支持,为大型项目提供流畅的开发体验:

- **并行任务执行**:多线程并行执行构建、测试等任务
- **智能依赖分析**:分析项目依赖关系,优化构建顺序
- **混合项目支持**:支持在同一 Monorepo 中混合不同类型的项目

### 🚀 快速原型开发

Nargo 的零配置和快速启动特性,使其成为快速原型开发的理想选择:

- **瞬时启动**:开发服务器秒级启动,立即开始编码
- **智能默认配置**:无需配置即可开始开发
- **实时反馈**:实时的类型检查和代码质量反馈

## 📚 社区资源

- **[贡献指南]CONTRIBUTING.md** - 如何为 Nargo 项目做贡献
- **[常见问题]FAQ.md** - 常见问题解答
- **[最佳实践]BEST_PRACTICES.md** - 使用 Nargo 的最佳实践
- **[社区交流]COMMUNITY.md** - 社区指南和交流渠道
- **[官方文档]documentation/** - 详细的使用文档

## 👥 社区与支持

- **GitHub Issues**: [报告 Bug]https://github.com/nargo-js/nargo/issues
- **GitHub Discussions**: [提问和讨论]https://github.com/nargo-js/nargo/discussions
- **Twitter**: [@nargo\_js]https://twitter.com/nargo_js
- **Discord**: [加入社区]https://discord.gg/nargo

## 🤝 贡献

我们欢迎所有形式的贡献!请查看 [贡献指南](CONTRIBUTING.md) 了解如何开始。

## 📂 项目结构

- `compilers/`: Rust 核心组件 (Compiler, Parser, Bundler, Bridge, etc.)
- `runtimes/`: 前端运行时与类型定义
- `examples/`: 示例项目
- `documentation/`: 文档
- `scripts/`: 辅助脚本
- `tests/`: 测试套件

## 📞 联系我们

如有任何问题或建议,欢迎通过以下方式联系我们:

- **Email**: <team@nargo.dev>
- **Website**: [nargo.dev]https://nargo.dev
- **GitHub**: [nargo-js/nargo]https://github.com/nargo-js/nargo

## ⚖️ License

MIT.