npm i micfc-fast -g
npx micfc-fast init "模板"
- mt
- micfc-fast
- mcfast
micfc-fast init
init 后会弹出配置好的模板包以供选择,按照步骤执行安装即可
micfc-fast init "xxx"
-
xxx
可以为内置的模板包名或模板配置的别名(只有内置的包才有别名) -
xxx
也可以是发布到 npm 的包名 - 例如:
micfc-fast init react
, 安装react
项目模板
-
-t
指定模板包中某个确切的模板 -
-p
模板的安装路径,- 安装非 npm 包下管理的模板,例如:
micfc-fast init "包名" -p git+ssh: xxxx.git#tag
- 调试本地项目模板配合
-l
使用,例如:micfc-fast init -p dist/template.config.js --local
- 安装非 npm 包下管理的模板,例如:
-
-l
指定模板路径为本地调试路径 -
-r
指定模板安装的默认根路径,在一些固定场景可以减少每次安装配置路径的重复输入 -
-d
开启调试模式,调用过程会额外打印一些信息,帮助定位问题
micfc-fast update
-
-g
是否更新全局,还是执行命令出的当前目录
默认值: false
-
安装基础模板项目
-
模板包实际就是一个 npm 包,只需要引用该包时返回模板配置相关的的配置项即可,通常我们会把该配置放在
template.config.js
中,具体文件位置无要求,只需要在包的 package.json 中配置到main
即可
module.exports = {
root: "./template", // 模板文件所在的根目路径,后续模板的路径都是基于此路径的相对路径
templates: [
// 可配置多个
{
name: "mcfc-template", // 模板的名字
description: "模块编写文件", // 模板的描述
path: "./template", // 模板的路径 相对 root 的相对路径
definePathBehavior: (ctx: Context) => void; // 自定义默认的模板安装路径配置行为(可跳过此步,也可插入其它自定义行为)执行完成后需要设置 ctx的target属性,即最终的安装目录
whiteBefore: async (ctx) => {
// 模板文件写入前的回调函数
// 可以在此处添加一些模板变量注入
// 做一些写入文件的前置准备工作
},
writeEnd: async (ctx) => {
// 模板文件写入后的回调函数
// 模板内容的初始化操作,例如项目模板安装完成后可以执行 install 操作,安装项目依赖
},
},
],
};
-
回调函数都为异步函数,函数内可执行异步操作,会阻塞后续流程
-
ctx 当前执行上下文, 会提供一些 mt 内置工具 和运行中参数
-
command 当前执行指令相关的一些参数
- template, args, path, local 等
-
target 用户选择安装模板的路径
-
injectObject 运行中产生的一些数据,通常用来存储注入到模板中的变量
-
fs 文件读写能力 fs-extra
- copyTemDir
- copyDir
- copyFileTpl
- copyFileTemplateTpl
-
spawn 执行 shell 的能力 cross-spawn
-
inquirer 命令行交互能力 inquirer
-
chalk 控制命令行字体颜色 chalk
-
- 在复制模板到目标位置时,会忽略模板源文件中的
node_modules
和__
文件夹, 可在__
中存储一些回调函数中用到的文件 - 如果安装的包版本不是想要的最新版本,可查看当前模板包版本是否为最新,删除老的版本后再次执行初始化模板命令后会自动安装最新版本
- 模板包一般会安装在当前执行命令下
node_modules
中,删除node_modules
即可 - 如果上述方法不行,在指令后加 --debug 可查看具体的模板包信息(
模板配置文件路径:xxxxxx
),找到对应文件删除即可
- 模板包一般会安装在当前执行命令下