Skip to content

calibur-tv/skr

Repository files navigation

skr 📦

一个基于 lerna 的 monorepo 脚手架,也是一个基于 ejs 的 template 管理器

Why? ✨

  • lerna 的命令众多参数复杂,不利于初学者.
  • lerna 无法在 CI 中精准的控制发布依赖.
  • Yarn2 的 monorepo 方案在 CI 中要依赖 remote-npm 更加麻烦.

Quick Start

1.安装 CLI 到全局

npm install @calibur/skr-cli -g

2.初始化 CLI 依赖

skr init

你可以通过 skr init --url=<远程配置文件地址> 来使用你自己的模板列表

3.查看模板列表

skr template --list

4.创建项目

skr create <project-name> --template=<template-name>

Commands

查看所有指令

skr -h

查看单个指令详情

skr create -h

skr init

初始化脚手架依赖(yarn 和 lerna),可以通过 --url=<配置文件地址> 来修改默认的配置文件列表;可以通过--pkg=<packageName>来指定要安装依赖的包。

skr upgrade

用于升级脚手架,未来将会集成在其它命令中。

skr create

创建项目,你可以选择自己创建一个模板,如果执行create的当前目录是 lerna monorepo 的根目录,则会自动把项目添加到 workspace。

skr template

本地模板的CURD操作

skr boot

构建某个 package 的所有依赖,可通过--clean 来删除 node_modules(类似lerna clean),但是boot会根据所选项目依赖的拓扑结构去构建本地依赖,减少了麻烦。

skr run

执行某个 package 的script,如:skr run dev --name=<project-name>,这样就不需要跳转到具体的项目目录去执行脚本了。

skr add

类似于lerna add,简化了命令无需输入 scope,取而代之的是命令行选项来选择。

skr version

类似于lerna version,但只会发布你所选的项目,并根据选项依赖的拓扑结构执行每个依赖的publish命令。

skr deploy

私有发布时,最好的方式是删除lerna.jsonpackage.json里的workspaces,这样项目就是一个multirepo,所有依赖都会走远程npm

Todos

  • skr init --url支持 extends 语法
  • 调整各个命令的名称和参数,减少和leran的差异。
  • 支持create时传入自定义的confirm

License (MIT) 📚