#template #file-manager #apply #directory #config #create #command

app cloup

Cloup 是一个模板管理器,当您需要时提供您想要的文件

2 个不稳定版本

0.2.0 2024 年 3 月 9 日
0.1.1 2022 年 9 月 28 日

#149 in 文件系统

AGPL-3.0

5MB
1.5K SLoC

cloup

Downloads License

cloup 是一个 模板管理器,当您需要时提供您想要的文件,用 Rust 编写

您不再需要找到之前的项目并复制粘贴文件了

工作原理安装

Example image

动机

我总是发现自己需要搜索某些文件或文件夹,通常是配置设置,它们在每个项目中都是相同的。这些可能是什么,但对我来说通常是 .prettierrc.eslintrctsconfig.jsontests/ 等。

想法是能够在任何我需要它们的项目中以光速检索这些文件。所以,与其找到旧项目并复制文件到新项目中,我想要一种方式将它们保存为模板,并能够使用命令将它们应用到当前目录中,同时还能创建具有已配置设置的基模板的自己的版本。

您不再需要使用相同的 create-app-* 并将其更改为您喜欢的样子。运行一次,创建一个您喜欢的基模板,然后使用 cloup apply <your-template-name> 并将其递归地插入到当前目录中。

工作原理

假设您有一个包含一些文件的文件夹

project
│   .prettierrc
│   .eslintrc
│   index.ts
│   package.json
│   tsconfig.json
└───src
    │   index.ts
    │   utils.ts
    └───folder
        │   another_file.ts
        │   ...

并且您想为每个项目重复使用 .prettierrc.eslintrc,您可以通过运行以下命令创建这些文件的 cloup

$ cloup create react-dotfiles -f .prettierrc .eslintrc

现在我们创建了一个名为 react-dotfiles 的 cloup。

现在,假设您创建了一个新项目

new-project
│   index.ts
│   package.json
│   tsconfig.json

要将 cloup 应用到此目录,我们只需在此目录中运行此命令

$ cloup apply react-dotfiles

现在文件结构看起来像这样

new-project
│   .prettierrc
│   .eslintrc
│   index.ts
│   package.json
│   tsconfig.json

就这么简单。

然而,Cloup 并不仅限于单个文件或文件夹。在上面的示例中,我们使用了 -f 标志来指定我们希望包含在 Cloup 中的单个文件和文件夹,但我们也可以创建包含所有文件(递归包含)的整个文件夹的 Cloup。

以这个例子为例

project
│   .prettierrc
│   .eslintrc
│   index.ts
│   package.json
│   tsconfig.json
└───src
    │   index.ts
    │   ...
────tests
    │   ...

如果我们想将此作为我们启动每个新项目的“基本模板”,我们只需给 Cloup 命名并不要额外的参数,就可以整个文件进行 Cloup。

$ cloup create base-template

现在,您可以使用 $ cloup apply base-template 将 Cloup 应用到任何新的空文件夹中,并瞬间拥有已经配置好的文件和配置的整个文件夹结构。

安装

目前,Cloup 只通过 Homebrew 和 Cargo 提供。其他安装方法正在开发中!

Homebrew

$ brew tap benja/tap
$ brew install cloup

Cargo

$ cargo install cloup

设置

安装成功后,在您的计算机上的某个位置创建一个新的目录,并在该目录中运行 $ cloup init 以将其初始化为模板目录。

这就是您所有 Cloup 将被存储的地方。请随意保留此文件夹版本,这样在您更换计算机时也不会丢失您的 Cloup。

贡献

欢迎提交拉取请求。对于重大更改,请首先打开一个问题来讨论您想更改的内容。

请确保根据需要更新测试。

无运行时依赖