1、 使用lerna管理多包
npm i lerna -g
2、使用lerna初始化项目
lerna init
初始化结构是这样的:
3、配置项目package.json文件
"scripts": {"preinstall": "npx only-allow pnpm","prepare": "husky install","init": "pnpm install","clean": "lerna run clean $$ rm -rf node_modules","test": "lerna run test","docs:dev": "vuepress dev docs","docs:build": "vuepress build docs","deploy":"bash deploy.sh","publish": "lerna publish","lint": "markdownlint README.md","changelog": "conventional-changelog -p angular -i CHANGELOG.md -s",},"publishConfig": {"access": "public","registry": "https://registry.npmjs.org/"}
preinstall:: "npx only-allow pnpm"
项目中只能用pnpm包管理工具"prepare": "husky install"
使用husky关联git hooks模版,为了加入commitlint"deploy":"bash deploy.sh"
发包管理,打好的包拷贝到远程的repository,使得其他的开发者或者工程可以共享"publish": "lerna publish"
这里的publish会把packages中的多宝都publish"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s"
这里的changelog需要先全局安装,后面会讲
4、创建pnpm-workspace.yaml文件
"pnpm-workspace.yaml"
是 pnpm 管理的多包(monorepo)项目中用于定义工作区设置的文件。如果您在初始化项目时遇到创建这个文件的提示,通常是因为你正在使用支持 pnpm 工作区功能的工具或框架
使用命令行创建:
echo -e "packages: - 'packages/*'" > pnpm-workspace.yaml
5、使用lerna创建分包
lerna create demo1
现在就能在packages中看到新建的分包,结构这样:
6、配置分包主入口文件
package.json文件中修改:
"main": "index.js",
同时创建一个index.js文件,把默认的lib文件夹删除即可
7、发布npm包
pnpm run publish
8、git action云构建
在git内配置action
持续更新中。。。。。。