1、 使用lerna管理多包
bash
npm i lerna -g
2、使用lerna初始化项目
bash
lerna init
初始化结构是这样的:
3、配置项目package.json文件
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 工作区功能的工具或框架
使用命令行创建:
bash
echo -e "packages: - 'packages/*'" > pnpm-workspace.yaml
5、使用lerna创建分包
bash
lerna create demo1
现在就能在packages中看到新建的分包,结构这样:
6、配置分包主入口文件
package.json文件中修改:
javascript
"main": "index.js",
同时创建一个index.js文件,把默认的lib文件夹删除即可
7、发布npm包
javascript
pnpm run publish
8、git action云构建
在git内配置action
持续更新中。。。。。。