2 个不稳定版本
0.2.0 | 2024 年 3 月 9 日 |
---|---|
0.1.1 | 2022 年 9 月 28 日 |
#149 in 文件系统
5MB
1.5K SLoC
动机
我总是发现自己需要搜索某些文件或文件夹,通常是配置设置,它们在每个项目中都是相同的。这些可能是什么,但对我来说通常是 .prettierrc
、.eslintrc
、tsconfig.json
、tests/
等。
想法是能够在任何我需要它们的项目中以光速检索这些文件。所以,与其找到旧项目并复制文件到新项目中,我想要一种方式将它们保存为模板,并能够使用命令将它们应用到当前目录中,同时还能创建具有已配置设置的基模板的自己的版本。
您不再需要使用相同的 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。
贡献
欢迎提交拉取请求。对于重大更改,请首先打开一个问题来讨论您想更改的内容。
请确保根据需要更新测试。