操作步骤
本文是基于 pnpm-workspace 创建的 monorepo 项目。
一、创建项目 workspace
在根目录下创建 pnpm-workspace.yaml,以设置根目录(其实就是指定哪些目录是以 monorepo 的形式管理的)。pnpm官网配置如下:
# pnpm-workspace.yaml
packages:
# all packages in direct subdirs of packages/ # 所有前端项目存储目录
- 'packages/*'
# all packages in subdirs of components/ # 公共组件存储目录
- 'components/**'
# exclude packages that are inside test directories # 排除测试代码目录 # !表示排除
- '!**/test/**'
二、子包实现
假设存在需将枚举类型 IpcEventEnum 提为公共项目类型。那么可以有以下步骤
子项目初始化
创建并进入以下目录 ./packages/enums
$ pnpm init
新建自定义的文件
// ./packages/enums/ipc.ts
export enum IpcEventEnum {}
设置导出
向外暴露所有导出的枚举类型
// ./packages/enums/index.ts
export * from './ipc.ts'
修改配置
./packages/package.json 中有以下配置可按需调整
- 包名称:子包一般为 @+命名空间/名称
- 主入口:一般为目录下
index.ts - 包版本:建议每次代码变更,都修改版本号
{
"name": "@sa/enums",
"version": "1.0.0",
"main": "index.ts"
}
三、子包使用
与普通包使用类似,下面以根项目使用为例
# 安装
$ pnpm add @sa/enums
# -----------------------
// 使用
// demo.ts
import { IpcEventEnum } from "@sa/enums"
// ...