any86 / Notes

:rocket: 笔记
https://github.com/any86/Notes/issues
28 stars 9 forks source link

pnpm和changeset前端新玩具 #77

Open any86 opened 2 years ago

any86 commented 2 years ago

pnpm

安装更快, 深入的没研究, 反正安装包的界面看起来很舒服.都说对workspace支持更好.所以用他替换了yarn.

de04f4300948f19190fc464d1da0540

npm i -g pnpm

支持monorepo

根目录新建pnpm-workspace.yaml, 把子项目的文件夹路径写入:

packages:
  - 'packages/*'

这里假设"子项目"文件夹是packages文件夹.

changeset

lerna不维护了, 那就换一个工具, 比如changeset. 说下基础用法:

安装

pnpm install changesets\cli changesets

初始化

生成config文件

pnpm exec changeset init

选择要操作的项目(包)

pnpm exec changeset

回车后, 会列出pnpm在pnpm-workspace.yaml中定义的wrokspace下的所有文件夹, 用"箭头"和"空格"进行选择. 第一项是全选.

image

选择后回车, 会继续让选择哪些项目(包)要升级大版本, 就是版本号"x,y.z"中的"x", 如不选直接回车, 接下来会要求选择哪些包修改"y"或"z"位.

image

都选择完毕, 最后会让对本次提交做个描述.

image

描述完毕后回车, 会展示你刚才的选择:

image

到这一步, 我们上面的选择会记录到一个缓存文件,在/.changeset/xxx-xxx-xx.md中.

生成日志&修改版本号

对刚才的操作生成CHANGELOG.md并修改每个package.json的版本号.

pnpm exec changeset version