当前位置: 首页 > article >正文

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

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/"
  }
  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 工作区功能的工具或框架

使用命令行创建:

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

持续更新中。。。。。。


http://www.kler.cn/news/305676.html

相关文章:

  • 一图读懂 若依后端
  • JavaScript web API part3
  • PCIe进阶之TL:Address Spaces, Transaction Types, and Usage
  • Java多线程1
  • Android13 Launcher3屏蔽桌面指示器
  • 外包干了半年,快要废了。。。
  • 【c++】类和对象详解
  • React18快速入门
  • 切换淘宝最新镜像源npm
  • VSCode学习笔记
  • Linux开发讲课44---linux性能查看命令和工具
  • 在职研生活学习--20240907
  • FaaS(Function as a Service)框架集成springboot
  • 【数据结构-一维差分】力扣2848. 与车相交的点
  • MySQL 8.0授权语法变更及解决方案‌
  • 点云深度学习系列:Sam2Point——基于提示的点云分割
  • 2024上半年国产操作系统卖疯了!麒麟4.9亿,统信1.9亿!
  • 架构设计:负责网络、定时、坐下、站起、重连等,支持多类游戏的无锁房间
  • Oracle发送邮件功能:配置自动化发信指南?
  • Redis搭建集成
  • 【ACM独立出版】第二届物联网与云计算技术国际学术会议 (IoTCCT 2024,9月27-29)
  • BookStack在线文档管理系统本地Docker部署与远程访问详细教程
  • 安全运维工程师学习路线
  • Unity实现自己的协程系统
  • RFB_modified模块的作用?和ASPP模块的区别?
  • GLSL 棋盘shader
  • STM32 HAL freertos零基础(六)计数型信号量
  • 十二,Spring Boot 异常处理(自定义异常页面,全局异常,自定义异常)
  • 视频融合共享平台LntonAIServer视频分析平台噪声监测优势
  • 【计算机网络 - 基础问题】每日 3 题(五)