前端工程化3:使用lerna管理多包

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/"
  }
  1. preinstall:: "npx only-allow pnpm" 项目中只能用pnpm包管理工具
  2. "prepare": "husky install"使用husky关联git hooks模版,为了加入commitlint
  3. "deploy":"bash deploy.sh"发包管理,打好的包拷贝到远程的repository,使得其他的开发者或者工程可以共享
  4. "publish": "lerna publish"这里的publish会把packages中的多宝都publish
  5. "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

持续更新中。。。。。。

相关推荐
迷雾漫步者1 小时前
Flutter组件————FloatingActionButton
前端·flutter·dart
向前看-2 小时前
验证码机制
前端·后端
燃先生._.3 小时前
Day-03 Vue(生命周期、生命周期钩子八个函数、工程化开发和脚手架、组件化开发、根组件、局部注册和全局注册的步骤)
前端·javascript·vue.js
高山我梦口香糖4 小时前
[react]searchParams转普通对象
开发语言·前端·javascript
m0_748235244 小时前
前端实现获取后端返回的文件流并下载
前端·状态模式
m0_748240255 小时前
前端如何检测用户登录状态是否过期
前端
black^sugar5 小时前
纯前端实现更新检测
开发语言·前端·javascript
寻找沙漠的人5 小时前
前端知识补充—CSS
前端·css
GISer_Jing6 小时前
2025前端面试热门题目——计算机网络篇
前端·计算机网络·面试