lerna官方文档:https://lerna.js.org/docs/getting-started
pnpm官方文档:https://pnpm.io/
mkdir demo
cd demo
# 初始化lerna项目
pnpx lerna init --packages="packages/*"
# 创建第一个包
lerna create core
# 创建第二个包
lerna create ui
# 安装所有包的依赖
pnpm add react -w
# 安装子包依赖
pnpm add @ant-design/pro-components --filter @cgf/ui5
# 每个子包都安装
pnpm install axios -r
# 子包间的依赖
pnpm add @cgf/ui --filter @cgf/ui5
# 多个
pnpm add @cgf/ui --filter @cgf/ui5 --filter @cgf/ui4
# 查看package.json
# "workspace:1.0.0"
# "workspace:*" // * 代表默认同步最新版本,也可以用^1.0.0等方式
# 安装指定版本 "workspace:1.0.1"
pnpm add @cgf/ui@^1.0.0 --filter @cgf/ui5
# 查看依赖关系
pnpm why @cgf/ui5 -r
# 移除依赖
pnpm remove react # 全局
pnpm remove react --filter @cgf/ui5 # 局部
# 构建全部 需要在子包中指定build的script,有顺序依赖关系的自建脚本运行
lerna run build
# 构建子包
lerna run build --scope @cgf/ui5
# pnpm构建
pnpm build -r #全部
pnpm build --filter @cgf-ui5
构建示例:package.json
"dev": "lerna run dev --stream & dumi dev --verbose",
"build": "dumi build",
"test": "dumi test",
"release": "lerna publish",
"build:all": "lerna run build --stream",
"build:core": "lerna run build --scope @cgf/core",
"build:hooks": "lerna run build --scope @cgf/hooks",
"build:ui": "lerna run build --scope @cgf/ui",
"build:ui5": "lerna run build --scope @cgf/ui5",
"build:devops-ui": "lerna run build --scope @cgf/devops-ui"