美文网首页
lerna 多包管理

lerna 多包管理

作者: small_zeo | 来源:发表于2022-01-24 16:24 被阅读0次

Lerna

Lerna 是一个管理工具,用于管理包含多个软件包(package)的 JavaScript 项目。
将大型代码库拆分为独立的独立版本包对于代码共享非常有用。 然而,在许多存储库中进行更改是麻烦和难以跟踪的事情。为了解决这些(和许多其他)问题,一些项目将它们的代码库组织成多包存储库。 像 Babel、React、Angular、Ember、Meteor、Jest 等等。

用法

  • 推荐使用 Lerna 2.x 版本
npm install --global lerna
  • 创建一个新的 git 代码仓库
git init lerna-repo && cd lerna-repo
  • 将上述仓库转变为一个 Lerna 仓库:
    lerna init
  • 你的代码仓库目前应该是如下结构:

命令

lerna init

常见一个新的 lerna 仓库(repo)或将现有的仓库升级为适配当前 版本的 Lerna
参数: --independent/-i – 使用独立的 版本控制模式。

lerna bootstrap

在当前 Lerna 仓库中执行引导流程(bootstrap)。安装所有依赖项并链接任何交叉依赖。
此命令至关重要,因为它让你可以 在 require() 中直接通过软件包的名称进行加载,就好像此软件包已经存在于 你的 node_modules 目录下一样。

lerna import <pathToRepo>

将本地路径 <pathToRepo> 中的软件包导入(import) packages/<directory-name> 中并提交 commit。

lerna publish

为已经更新过的软件包创建一个新版本。提示输入新版本号并更新 git 和 npm 上的所有软件包。
参数:
--npm-tag [tagname] — 使用给定的 npm dist-tag (默认为 latest)发布到 npm。
--canary/-c – 创建一个 canary 版本。
--skip-git – 不要运行任何 git 命令。
--force-publish [packages] — 强制发布 指定的一个或多个软件包(以逗号分隔)或使用 * 表示所有软件包(对于修改过的软件包跳过 git diff 检查)。

lerna changed

检查自上次发布以来哪些软件包被修改过。

lerna diff [package?]

列出所有或某个软件包自上次发布以来的修改情况。

lerna run [script]

在每一个包含 [script] 脚本的软件包中运行此 npm 脚本

lerna ls

列出当前 Lerna 仓库中的所有公共软件包(public packages)。

lerna-repo/
  packages/
  package.json
  lerna.json

lerna.json解析

{
  "version": "1.1.3",
  "npmClient": "npm",
  "command": {
    "publish": {
      "ignoreChanges": ["ignored-file", "*.md"],
      "message": "chore(release): publish",
      "registry": "https://npm.pkg.github.com"
    },
    "bootstrap": {
      "ignore": "component-*",
      "npmClientArgs": ["--no-package-lock"]
    }
  },
  "packages": ["packages/*"]
}
  • version: 当前仓库版本
  • npmClient: 指定运行的命令,使用yarn则改成"yarn";默认"npm"
  • command.publish.ignoreChanges: 全局的数组,lerna更改/发布则不包含这个数组;使用此选项可以防止不必要地发布新版本以进行更改,例如修复README.md错误。
  • command.publish.message: 执行发布版本更新时的自定义提交消息。
  • command.publish.registry: 使用它设置自定义源来代替npmjs,必须已经过身份验证。
  • packages: 全局的数组,作为使用package的地方。
  • command.bootstrap.ignore: 当执行lerna bootstrap时忽略数组里的命令
  • command.bootstrap.npmClientArgs: 执行lerna bootstrap时,数组里的字符将作为参数直接传递给npm install

参考链接

github-lerna
lerna官网

相关文章

  • lerna 多包管理

    Lerna Lerna 是一个管理工具,用于管理包含多个软件包(package)的 JavaScript 项目。将...

  • lerna 从0到1

    简介 Lerna 是一种工具,针对 使用 git 和 npm 管理多软件包代码仓库的工作流程进行优化。 多包管理器...

  • lerna 包管理器

    Lerna 是一种工具,针对 使用 git 和 npm 管理多软件包代码仓库的工作流程进行优化。 多包管理器 安装...

  • Lerna 教程

    一、什么是 lerna? 多包管理工具,方便我们在一个项目中管理多个 npm 包。它能够在发包时统一每个包的版本号...

  • 前端项目直接添加本地包方案

    如果我们想不使用 lerna 管理本地多包项目的情况下,就可以使用 yarn workspace add 来添加本...

  • Lerna入门教程

    Lerna简介 Lerna是一个优化基于git + npm的多package项目的管理工具 优势 大幅减少重复操作...

  • lerna 教程 同一项目多package管理

    what Lerna 是一个管理工具,用于管理包含多个软件包(package)的 JavaScript 项目。 w...

  • lerna入门篇

    lerna### Lerna 是一个用来优化托管在git\npm上的多package代码库的工作流的一个管理工具,...

  • 工程化工具

    lerna Lerna 是一个用来优化托管在git\npm上的多package代码库的工作流的一个管理工具,可以让...

  • 多包管理 lerna 学习

    lerna 关于 lerna 将大型代码库拆分为独立版本的包对于代码共享来说十分有用。然而,跨许多存储库(acro...

网友评论

      本文标题:lerna 多包管理

      本文链接:https://www.haomeiwen.com/subject/zebmhrtx.html