# `create-vue-business-rs`
> Generate a CLI for business projects in the `packages` directory of a pnpm monorepo working repository.
> Refactor the `create-vue-business` CLI library using Rust. The original library was built using ESM.
| rust | 1.67.1 |
| dialoguer | 0.10.3 |
| console | 0.15.5 |
| termcolor | 1.2.0 |
| regex | 1.7.3 |
| serde_json | 1.0.159 |
| git2 | 0.17.0 |
## 使用
> 目前仅支持`cargo install`安装方式
- 下载安装
```shell
cargo install create-vue-business-rs
```
- 使用
```shell
# 输入create-vue-business-rs,按回车键即可
create-vue-business-rs
```
TODO 待修改

## 开发指南
- 下载&安装依赖
```shell
git clone https://github.com/laqudee/create-vue-business-rs.git
cd create-vue-business-rs
cargo install
cargo run
```
- 构建正式包
```shell
cargo build --release
```
- 发布到`crates.io`
```shell
cargo publish
```
## 构建过程
1. 首先将模板`template`放到根目录下,分为`base`,`code`, `config`这三个子目录,根据选择的配置不同,进行渲染。
2. 使用`dialoguer`库,生成命令行配置选择
3. 根据选择的配置,执行`render()`函数进行渲染
4. 使用`git2`库初始化 git
5. 渲染完成,输出提示信息
6. 退出程序
## 待解决的问题
1. [x] ~~使用 Rust 操作文件及目录~~
2. [x] ~~文件渲染~~
3. [ ] 命令打包的方式及提供几种构建方式
- 目前支持`cargo install create-vue-business-rs`方式安装使用
4. [ ] `git2`库没有生效
5. [ ] 生成的`package.json`内容按照字母顺序排序了,不符合正常的`package.json`顺序
6. [ ] 是否转为 npm 命令
## 参考
### 使用Rust写的CLI工具库
- [`create-vue-monorepo-rs`](https://github.com/laqudee/create-vue-monorepo-rs)
- [`create-vue-business`](https://github.com/laqudee/create-vue-business-rs)
### 已经发布的Crate包
- [`create-vue-monorepo-rs`](https://crates.io/crates/create-vue-monorepo-rs)
- [`create-vue-business-rs`](https://crates.io/crates/create-vue-business-rs)
### 原版使用JavaScript写的CLI工具库
- [`create-vue-monorepo`](https://github.com/laqudee/create-vue-monorepo),仿照create-vue写了一个生成一个pnpm monorepo 的工作仓库的简单CLI
- [`create-vue-business`](https://github.com/laqudee/create-vue-business),仿照create-vue写了一个生成一个 pnpm monorepo 的工作仓内部packages目录下业务项目的 CLI
### 已经发布的NPM包
- [`create-vue-monorepo`](https://www.npmjs.com/package/create-vue-monorepo)
- [`create-vue-business`](https://www.npmjs.com/package/create-vue-business)