- 安装 pnpm
- npm init
- 修改 package.json, 包管理器限制
{
// 只允许使用pnpm来开发
// preinstall: 在install之前(首次)执行
// postinstall: 在install之后(首次)执行
"scripts": {
"preinstall": "npx only-allow pnpm"
},
// 防止最外层包被发布出去,设为true以后发布时会提醒你
"private": true,
"engines": {
"node": ">=16"
}
}
- 手动添加 pnpm-workspace.yaml
packages:
- 'packages/**'
- 添加 packages 文件夹
- 添加一个子包 test-share
- 进入子包 pnpm init
- 修改 package.json
{
"publishConfig": {
"access": "public"
}
}
- 子包名叫 @shaoo/test-share
- 添加一个子包 test
- 进入子包 pnpm init 同时修改 package.json
- 子包名叫 @shaoo/test
- test 里添加依赖
pnpm -F @shaoo/test add @shaoo/test-share
{
"@shaoo/test-share": "workspace:*"
}
- 登录 npm
npm login
- 安装发包依赖
pnpm install @changesets/cli -w --save-dev
pnpm changeset init
- 预发布
pnpm changeset pre enter <tag>
# alpha 是内部测试版,一般不向外部发布,会有很多Bug,一般只有测试人员使用
# beta 也是测试版,这个阶段的版本会一直加入新的功能。在Alpha版之后推出
# rc (Release Candidate) 发行候选版本。RC版不会再加入新的功能了,主要着重于除错
pnpm changeset
# major minor patch
# 1.0.0
pnpm changeset version
pnpm changeset publish
# error an error occurred while publishing @shaoo/test:
# error '@shaoo/test@1.0.0' is not in this registry.
# npm规定包名中,@后是用户名 或者是组织
pnpm changeset pre exit
- 正式发布
pnpm changeset
pnpm changeset version
pnpm changeset publish