README
@durka/cli
多命令行管理工具,和微服务、微前端类似,此工具也可以理解成微命令行(有点类似 npx,但比 npx 的功能更多)
理念:用一个命令统一管理所有的命令行工具
现状:
- react 项目可能需要 react 相关的打包编译工具
- vue 项目可能需要 vue 相关的打包编译工具
- 小程序项目可能需要小程序相关的打包编译工具,根据不同种类的小程序,还可以再细分成不同类型的小程序相关的打包编译工具
使用 @durka/cli
,你不需要去学习各种不同的打包工具,你都可以做到:
durka dev
=> 启动本地开发环境durka build
=> 打包编译当前项目durka pack
=> 将一个项目打包成一个脚手架项目(可以通过 durka init 来使用)durka init
=> 创建一个新项目- ... 更多自定义命令
TODO
[x] 当 package.json 中的 durka 版本更新导致本地版本不匹配之后,忽略缓存
Features
让开发更专注于业务,而不是构建
本地项目不需要安装任何的 SDK (可以选择将一个轻量级的
@durka/cli
安装在本地,不过更建议全局安装),让本地项目更专注于做和构建无关的事单一职责
不同 SDK 相互隔离,互不影响,可以让一个 SDK 专注于做一件事,避免因为一个 SDK 需要更新而更新整个构建系统
连接不同的 SDK、不同的版本
统一管理不同的 SDK,随意调用不同 SDK;同一个 SDK 的不同版本也可以并存,并且可以随意快速切换版本
自动升级
自动检查当前使用的 SDK 是否可更新,并且可以自动更新,更新完可以继续执行命令,不阻塞
脚手架
内置一个脚手架 SDK,支持快速基于已有模板创建新项目(
durka init
),也支持快速将一个项目生成脚手架模板(durka pack
)
Installation
npm i -g @durka/cli
Usage
package.json 中附加的配置
durka.commands
配置 durka 的命令,及其所关联的 SDK,示例:
"durka": {
"commands": {
"build": "@durka/rollup-cli@0.0.5"
}
},
当运行 durka build
时,会自动加载 @durka/rollup-cli@0.0.5
,然后识别到 @durka/rollup-cli
中的 bin 文件路径,再执行 node rollup-cli/path/to/bin build
。
另外,上面的配置也可以配置成:
"durka": {
"commands": {
"build": {
"name": "@durka/rollup-cli",
"version": "@0.0.5"
}
}
},
可以在 vscode 的 setting.json
中配置下面语句,这样就可以支持在编写 package.json 时自动补全 durka 相关的字段
"json.schemas": [
{
"fileMatch": [ "package.json" ],
"url": "https://qiu8310.github.io/schema/package.json"
}
]
Changelog
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.