pda
Version:
this project to init some folder,help you create new folder.
119 lines (97 loc) • 3.29 kB
Markdown
quick start
**只需要一个命令构建你想要的目录结构**
pda 是一个工具,用来构建你想要的文件目录而,可以构建但不仅仅是构建你的代码
使用 npm
```
npm install -g pda
```
* 通过 init 命令来构建
```
pda init <your-package>
```
your-package 同样是一个npm 上的 共有包 例如,你输入 **pda init test** ,pda将自动寻找当前 你配置的 npm 源路径下 名字为 **pda-test** 的npm package 并根据规则,生成选项,并最终构建你的文件仓库。
>以**pda-**开头的仓库,叫pda源仓库
使用已有的pda源仓库来测试
```
pda init test // test = npm view pda-test
```
* pda源仓库
pda 源仓库 是自定义文件的核心,类似树形结构,源仓库就是根节点。
pda 源仓库 包含两大部分
目录结构 如下
```
root/
pda.json
package.json
```
**pda.json**
```
{
"check":[
{
"tip":"输入选择文件夹名称",
"color":"green",
"input":[
{
"test":".*",
"output":"__input__"
}
]
}
],
"fileName":".*\\.js",
"end":"测试结束输入"
}
```
pda.json的内容是当用户输入 **pda init [someackage] ** 时,读取的配置文件,读取完毕后,将会自动进行配置选项。
* **check **
check 是一个数组,里面的每个元素类似一系列问题。用户需要根据问题回答出答案。例如上面的配置,**pda init [some]**将会出现
```
pda init test
[ Init package ]
[ Download package ]
[ Extract package ]
输入选择文件夹名称
```
* **tip**
将输入的提示
* **color**
输出的颜色,参考 **npm view colors**
* **input**
input 也是一个数组,每个节点是为了匹配用户的输入,之后进行输出。
* **test**
一个正则字符串,用于匹配用户的输入
* **output**
output字段是用户输入完成之后的输出,这里有两个关键字
**__input__** 代表等于 用户的输入,例如 **output:"__input__".js*。
**__exit__**代表结束进程,整个过程终止。
* **fileName**
fileName 涉及到下个不分,root内的格式。当check结束之后,用户的输入变为了一个数组。
那么接下来,我们就要开始自定义我们文件夹的格式了。那么fileName字段就代表了我们希望进行编译的文件夹。
fileName同样是一个正则表达式。
* **end**
结束时的log
**root**
root 是pda源的一个根目录
root下所有的文件包括文件夹都是pda源
当用户输入结束,用户的输入将根据output字段生成一个0~n长度的数组。
编译期间会将**root**目录下的所有文件名含有**__number__**的字符串替换为用户的输入
like:
```
pda init test
[ Init package ]
[ Download package ]
[ Extract package ]
输入选择文件夹名称
test
[ Compile ]
[ Building ]
[ Clear cache ]
编译结束后 文件夹名称含有 __0__的将会被替换为 test
例如__0__.js => test.js
```
**fileName**字段是为了防止一些过度的编译,当root根目录下的任意匹配了fileName
编译将进入到文件内部。
如上面例子 在一个index.js内 含有**__0__**将会被替换为 test
come on ,begin your first pda sorce