背景
支持 monorepo 的 watch 能力
方案
方案一:@ice/pkg 支持 monorepo 能力
- 使用
@ice/pkg 遵从 workspace 设计。即 root 目录 package.json 字段 workspace 作为标记所有子包。
"workspaces": [
"packages/*"
],
亦可通过 --workspace 命令行参数指定:
# 读取 package.json workspace 字段
$ @ice/pkg build --workspace
$ @ice/pkg start --workspace
# 单独指定
$ @ice/pkg start --workspace=packages/a,packages/b
- 配置
若 root 存在配置文件,则以该配置文件为准;若子仓库下存在配置文件,则以可覆盖 root 下配置文件。
- 拓扑结构
支持依赖拓扑结构进行构建
方案二:@ice/pkg 不提供 monorepo 能力,改由其他支持 monorepo 的工具,以 pnpm 为例:
{
"scripts": {
"start": "pnpm -r --filter ./packages run start"
}
}
这种方案的问题主要有:
- 会启动多个 watcher(包括启动 log 也会存在多份)

背景
支持 monorepo 的 watch 能力
方案
方案一:@ice/pkg 支持 monorepo 能力
@ice/pkg 遵从 workspace 设计。即 root 目录
package.json字段workspace作为标记所有子包。亦可通过
--workspace命令行参数指定:若 root 存在配置文件,则以该配置文件为准;若子仓库下存在配置文件,则以可覆盖 root 下配置文件。
支持依赖拓扑结构进行构建
方案二:@ice/pkg 不提供 monorepo 能力,改由其他支持 monorepo 的工具,以 pnpm 为例:
{ "scripts": { "start": "pnpm -r --filter ./packages run start" } }这种方案的问题主要有: