lerna 使用

npm i lerna -g

生成 lerna.json 文件

lerna init

如下

{
  "packages": [
    "packages/*"
  ],
  "version": "0.0.0"
}

创建子包 (-y 表示使用默认配置)

lerna create lib -y
lerna create test -y

此时项目结构如下在这里插入图片描述
进入 .\packages\test\lib\test.js, 修改为如下内容

'use strict';

module.exports = test;

function test() {
    console.log('this is test file')
}

然后我们要在 lib 中使用 test 文件
.\packages\lib\lib\lib.js 内容如下

const test = require('test')

test()

在该目录下运行, 报错 Error: Cannot find module 'test'

⭐️ 需要将 .\packages\test 添加到 lib 下, 命令如下

lerna add test

再次运行, 成功

参考
lerna 基本使用(创建, 发布, 命令)

03-13
<think>好的,我需要回答用户关于Lerna使用指南的问题。首先,用户已经提供了一些引用内容,我需要先仔细查看这些引用,确保回答准确并正确引用来源。 引用[1]和[2]都提到Lerna是管理多个JavaScript包的工具,特别是用于Monorepo项目。需要强调Lerna的主要功能和用途。引用[4]提到前端工程化的实践,可以结合这一点说明Lerna在工程化中的作用。引用[3]和[5]可能和工程配置相关,但用户的问题主要关注使用指南,所以可能需要重点参考前三个引用。 接下来,我需要按照用户的要求,结构清晰地分步骤说明Lerna使用指南。用户希望了解如何开始使用、核心功能、工程化实践中的典型应用场景,以及最佳实践。同时,生成的相关问题需要符合用户提供的示例中的格式,比如关于优势、Monorepo管理、配置优化等。 需要确保使用中文回答,行内数学公式用$...$,独立公式用$$...$$,但根据问题内容,可能数学公式较少,不过要注意其他格式要求如代码块和引用标识。用户提供的引用中有[^1]到[^5],需要正确对应到相关内容,比如引用[1]和[2]对应Lerna的基本信息,引用[4]对应工程化实践。 现在开始组织内容: 第一部分是Lerna的简介,结合引用[1]和[2],说明其是什么、主要功能和解决的问题。第二部分是安装与初始化,需要给出具体的命令,如全局安装、初始化项目。第三部分是核心功能,如包管理、版本控制和依赖管理,每个功能下给出示例命令。第四部分是工程化实践中的应用,结合引用[4],提到项目结构、自动化脚本等。第五部分是最佳实践,可能包括保持包独立、自动化测试、代码规范工具等,引用[3]中的commitlint可以作为代码规范的例子。最后生成相关问题,参考用户示例的问题结构,提出关于优势、Monorepo、配置优化等。 需要检查引用标注是否正确,比如在提到版本控制时引用[1],在工程化部分引用[4]。同时,确保代码块格式正确,使用正确的语法,如bash命令。最后生成的问题要符合用户提供的示例中的结构,三个问题,每个问题用数字标号。</think>### Lerna JavaScript 工程化工具使用指南 #### 1. Lerna 简介 Lerna 是一个用于管理包含多个软件包(package)的 JavaScript 项目的工具,特别适用于 **Monorepo**(单仓库多包)架构。它能够帮助开发者统一管理依赖、版本发布和跨包协作[^2]。 #### 2. 安装与初始化 - **全局安装**: ```bash npm install -g lerna ``` - **初始化项目**: ```bash lerna init ``` 该命令会生成 `lerna.json` 配置文件,并创建默认的 `packages` 目录存放子包。 #### 3. 核心功能 - **包管理**: 通过 `lerna create <package-name>` 创建新包,并自动生成目录结构。 - **版本控制**: 使用 `lerna version` 统一更新所有包的版本号,支持语义化版本控制(SemVer)。 - **依赖管理**: - `lerna add <dependency>`:为所有包添加公共依赖。 - `lerna add <dependency> --scope=<package>`:为指定包添加依赖。 #### 4. 工程化实践中的典型应用 - **统一构建与测试**: 在根目录的 `package.json` 中配置脚本,例如: ```json { "scripts": { "build": "lerna run build --parallel", "test": "lerna run test" } } ``` 通过 `lerna run` 批量执行子包脚本,提升效率[^4]。 - **代码规范与提交校验**: 结合 `commitlint` 和 `husky` 实现提交信息规范化(参考引用[3]的配置)[^3]。 #### 5. 最佳实践 1. **保持包的独立性**:每个包应有明确职责,避免过度耦合。 2. **利用自动化工具**:集成 CI/CD 流程,例如通过 GitHub Actions 实现自动发布。 3. **优化依赖提升**:在 `lerna.json` 中配置 `"useWorkspaces": true`,结合 Yarn Workspaces 减少重复依赖。 ```bash # 示例:发布所有包到 npm lerna publish from-package ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值