使用 npm :
$ npm install -g magic-cli
使用 yarn :
$ yarn global add magic-cli
初始化一个项目
选项:
> -c, --clone # 使用 git clone 下载模板文件
> -r, --remote # 下载远程模板文件而不是使用本地缓存的模板文件
说明:
这个命令是在vue-cli的init
的命令基础上面改的。有以下几个更改点:
- 增加了
alias
,也就是项目的别名的使用,初始化时会先去检查是否有别名 - 增加了缓存,
vue-cli
默认是在初始化完成后删除所下载的模板文件。修改后会缓存模板文件到系统的tmp目录。如果要更新换成或者是要下载从线上的模板文件进行初始化可以使用--remote
或者-r
选项。这样更新的模板文件会覆盖原来缓存的模板文件。
PS:模板文件的渲染规则是使用的 Handlebars.js. 你可以具体参考它的语法。默认也注册了if_eq
和unless_eq
两个自定义命令
给远程(本地)模板添加一个别名
选项:
> -l, --list # 查看别名列表
> -a, --absolute # 如果是设置本地模板文件的路劲别名,默认是保存相对路劲,加了这个选项后会使用绝对路径
> -d, --desc [desc] # 给别名添加描述,可以创建别名的时候添加,也可以在为已经存在的别名添加
删除一个别名
在blueprints(模板)的基础上生成文件
选项:
> -l, --list # 查看蓝图文件列表
> -c, --cwd [path] # 生成文件的起始目录
> -f, --force # 如果生成的文件已经存在,直接覆盖。不询问用户是否覆盖
说明:
这个命令是借鉴了redux-cli的generate
命令,但是实现方式不一样。在用它的命令时有很多不舒服的地方。在这个的基础上作了以下的修改
magic g
在查找blueprints
模板文件的时候不只会找当前目录(运行命令的目录),还会查找当前目录的上一层,以及上上层...这样就不用在每个目录都创建blueprints
模板文件了- 可以使用
-c,--cwd
选项来制定生成的目录 - 如果生成的文件已经存在则询问用户是否覆盖,而不是直接抛出错误
- 增加了修饰符,如下:
__name.cap__
或者__name.capitalize__
=> home to Home__name.low__
或者__name.lowercase__
=> Home to home__name.up__
或者__name.uppercase__
=> home to HOME__name.dash__
或者__name.dashcase__
=> homeName to home-name
例子:
如果你的blueprint文件是这样的
└── route
├── index.js
└── files
└── __name__
├── __name__Containers.js
├── __name__Components.js
└── __name__Reducers.js
然后使用
magic g
$ magic g route home
最后你会得到像这样的结果:
└── home
├── homeContainers.js
├── homeComponents.js
└── homeReducers.js
说明:
同样的文件内部的 __name__
也会被替换。你可以在文件内部的内容使用它。
React:
- xfcf1/react-webpack-starter: 一个嵌入UI组件antd的模版
Vue:
- vue-cli template:
vue-cli
官方模版
默认提供的blueprints文件
Name | Description |
---|---|
magic g blueprint <name> |
generates a blueprint template file |