lerna.js:monorepos项目管理模式简单实践

简介: lerna.js:monorepos项目管理模式简单实践

解释:

  • monorepos: 把相互依赖的项目组织成多包的形式放在同一个代码仓库里面
  • lerna.js:管理项目的一个工具

文档:

安装lerna

$ pnpm i lerna -g

修改配置 lerna.json,设置包管理工具为:pnpm

{
  "$schema": "node_modules/lerna/schemas/lerna-schema.json",
  "useNx": true,
  "useWorkspaces": true,
  "version": "0.0.0",
  "npmClient": "pnpm"
}

lerna init

# 初始化
$ lerna init

lerna create

# 创建三个新包
$ lerna create  -y animal
$ lerna create -y cat
$ lerna create  -y dog

文件目录

$ tree -I node_modules
.
├── lerna-debug.log
├── lerna.json
├── package-lock.json
├── package.json
├── packages
│   ├── animal
│   │   ├── README.md
│   │   ├── __tests__
│   │   │   └── animal.test.js
│   │   ├── lib
│   │   │   └── animal.js
│   │   └── package.json
│   ├── cat
│   │   ├── README.md
│   │   ├── __tests__
│   │   │   └── cat.test.js
│   │   ├── lib
│   │   │   └── cat.js
│   │   └── package.json
│   └── dog
│       ├── README.md
│       ├── __tests__
│       │   └── dog.test.js
│       ├── lib
│       │   └── dog.js
│       └── package.json
└── pnpm-lock.yaml

lerna list

列出所有的本地包

$ lerna list      
info cli using local version of lerna
lerna notice cli v5.4.3
animal
cat
dog
lerna success found 3 packages

lerna add

添加本地包或者远程包作为包的依赖

# 添加的 animal 作为 dog、cat 的依赖
lerna add animal
# 向 dog 中添加 cat 作为依赖
lerna add cat --scope=dog

lerna link

建立存在依赖关系的包之间的软连接

$ lerna link

建立软链之后,就可以相互引用了

lerna bootstrap

建立相互依赖的包之间的软连接并安装其他的依赖

$ lerna bootstrap

lerna run

在包目录下执行对应的脚本

# 在所有的包目录下执行测试
$ lerna run test
# 在dog 包目录下执行测试
$ lerna run test --scope=dog

lerna clean

移除所有 package 下的 node_modules,除了根目录下的 node_modules

$ lerna clean

参考

Lerna 小白入门


相关文章
|
5天前
|
存储 JavaScript 前端开发
使用JavaScript构建动态交互式网页:从基础到实践
【10月更文挑战第12天】使用JavaScript构建动态交互式网页:从基础到实践
22 1
|
9天前
|
JavaScript 前端开发 安全
TypeScript的优势与实践:提升JavaScript开发效率
【10月更文挑战第8天】TypeScript的优势与实践:提升JavaScript开发效率
|
9天前
|
JavaScript 前端开发 开发者
理解JavaScript中的原型链:基础与实践
【10月更文挑战第8天】理解JavaScript中的原型链:基础与实践
|
2月前
|
存储 安全 JavaScript
云计算浪潮中的网络安全之舵探索Node.js中的异步编程模式
【8月更文挑战第27天】在数字化时代的风帆下,云计算如同一片广阔的海洋,承载着企业与个人的数据梦想。然而,这片海洋并非总是风平浪静。随着网络攻击的波涛汹涌,如何确保航行的安全成为了每一个船员必须面对的挑战。本文将探索云计算环境下的网络安全策略,从云服务的本质出发,深入信息安全的核心,揭示如何在云海中找到安全的灯塔。
|
5天前
|
前端开发 JavaScript
深入理解JavaScript中的事件循环(Event Loop):从原理到实践
【10月更文挑战第12天】 深入理解JavaScript中的事件循环(Event Loop):从原理到实践
16 1
|
13天前
|
JavaScript 前端开发 API
探索Node.js中的异步编程模式
【10月更文挑战第4天】在JavaScript的世界中,异步编程是提升应用性能和用户体验的关键。本文将深入探讨Node.js中异步编程的几种模式,包括回调函数、Promises、async/await,并分享如何有效利用这些模式来构建高性能的后端服务。
|
16天前
|
JavaScript 前端开发 调度
探索Node.js中的异步编程模式
在Node.js的世界里,异步编程是核心。本文将带你深入了解异步编程的精髓,通过代码示例和实际案例分析,我们将一起掌握事件循环、回调函数、Promises以及async/await等关键概念。准备好迎接挑战,让你的Node.js应用飞起来!
|
19天前
|
Web App开发 JavaScript API
构建高效后端系统:Node.js与Express框架的实践之路
【9月更文挑战第37天】在数字化时代的浪潮中,后端开发作为技术架构的核心,承载着数据处理和业务逻辑的重要职责。本文将深入探讨如何利用Node.js及其强大的Express框架来搭建一个高效、可扩展的后端系统。我们将从基础概念讲起,逐步引导读者理解并实践如何设计、开发和维护一个高性能的后端服务。通过实际代码示例和清晰的步骤说明,本文旨在为初学者和有经验的开发者提供一个全面的指南,帮助他们在后端开发的旅途上走得更远。
37 3
|
23天前
|
JavaScript 前端开发 开发者
探索Node.js中的异步编程模式
【9月更文挑战第33天】在JavaScript的后端领域,Node.js凭借其非阻塞I/O和事件驱动的特性,成为高性能应用的首选平台。本文将深入浅出地探讨Node.js中异步编程的核心概念、Promise对象、Async/Await语法以及它们如何优化后端开发的效率和性能。
21 7
|
12天前
|
缓存 JavaScript 前端开发
探索Vue.js中的计算属性与侦听器:深入理解与实践
【10月更文挑战第5天】探索Vue.js中的计算属性与侦听器:深入理解与实践
13 0