SWC 插件项目教程
pluginsPlugins for swc, written in rust项目地址:https://gitcode.com/gh_mirrors/plugins6/plugins
1. 项目目录结构及介绍
swc-project/
├── .github/
│ └── workflows/
├── docs/
├── examples/
├── packages/
│ ├── swc/
│ ├── swc_core/
│ ├── swc_ecma_ast/
│ ├── swc_ecma_parser/
│ ├── swc_ecma_transforms/
│ ├── swc_ecma_utils/
│ ├── swc_ecma_visit/
│ ├── swc_macros_common/
│ ├── swc_visit/
│ └── swc_visit_macros/
├── scripts/
├── tests/
├── Cargo.toml
├── LICENSE
├── README.md
└── rustfmt.toml
目录结构介绍
- .github/workflows/: 包含 GitHub Actions 的工作流配置文件。
- docs/: 存放项目的文档文件。
- examples/: 包含项目的示例代码。
- packages/: 包含项目的各个子模块,如
swc
、swc_core
等。 - scripts/: 存放项目的脚本文件。
- tests/: 包含项目的测试代码。
- Cargo.toml: 项目的 Rust 包管理文件。
- LICENSE: 项目的开源许可证文件。
- README.md: 项目的介绍文件。
- rustfmt.toml: Rust 代码格式化配置文件。
2. 项目的启动文件介绍
在 swc-project
项目中,启动文件通常位于 packages/swc/src/lib.rs
或 packages/swc/src/bin/main.rs
。
lib.rs
文件
lib.rs
文件是 Rust 库的入口文件,通常包含库的初始化代码和导出的模块。
main.rs
文件
main.rs
文件是 Rust 可执行文件的入口文件,通常包含程序的主函数 main()
。
3. 项目的配置文件介绍
Cargo.toml
Cargo.toml
是 Rust 项目的包管理文件,包含项目的元数据、依赖项、构建配置等信息。
[package]
name = "swc"
version = "0.1.0"
edition = "2018"
[dependencies]
swc_core = { path = "packages/swc_core" }
swc_ecma_ast = { path = "packages/swc_ecma_ast" }
swc_ecma_parser = { path = "packages/swc_ecma_parser" }
swc_ecma_transforms = { path = "packages/swc_ecma_transforms" }
swc_ecma_utils = { path = "packages/swc_ecma_utils" }
swc_ecma_visit = { path = "packages/swc_ecma_visit" }
swc_macros_common = { path = "packages/swc_macros_common" }
swc_visit = { path = "packages/swc_visit" }
swc_visit_macros = { path = "packages/swc_visit_macros" }
[dev-dependencies]
rustfmt.toml
rustfmt.toml
是 Rust 代码格式化工具 rustfmt
的配置文件,用于定义代码格式化的规则。
max_width = 100
tab_spaces = 4
LICENSE
LICENSE
文件包含项目的开源许可证信息,通常为 MIT、Apache 2.0 等。
README.md
README.md
文件是项目的介绍文件,通常包含项目的概述、安装方法、使用说明等内容。
# SWC 项目
SWC 是一个基于 Rust 的高性能 JavaScript/TypeScript 编译器。
## 安装
```bash
cargo install swc
使用
swc <input_file> -o <output_file>
pluginsPlugins for swc, written in rust项目地址:https://gitcode.com/gh_mirrors/plugins6/plugins