lerna以及lerna-changelog使用

lerna用于管理多package,且各package可能会互相引用的项目。

lerna通过两种方式管理子项目的版本号

  • Fixed/Locked mode (default):每次执行lerna publish都会将所涉及到的包升级到最新一个版本,开发者只需要确定发布下一个version
  • Independent mode:由开发者自行管理子项目的version,每次执行lerna publish都需要确定每个包的下个版本号。

基本使用

以下命令以yarn为主。

Install 安装

yarn global add lerna

Init 初始化项目

lerna init 命令执行完毕后,会在生成对应的目录结构。

lerna-repo/
  package.json
  lerna.json
  packages/
    package-1/
      package.json
    package-2/
      package.json
复制代码

Lerna.json 配置

{
  "version": "1.1.3", // 项目版本
  "npmClient": "npm", // 默认使用的npm,可改为yarn
  "command": { // lerna 内置命令的配置
    "publish": {
      "ignoreChanges": ["*.md", "**/test/**",], // 发布时忽略部分文件的改动,配置此项可以减少不必要的publish。
      "message": "chore(release): publish" // git commit message
    },
  },
  "packages": ["packages/*"]
}
复制代码

Create 创建子项目

lerna create 创建一个子项目,并会根据交互提示生成对应的package.json

Add 添加依赖

lerna add [@version] [--dev] [--exact]

  • lerna add eslint: 所有包都会装上eslint
  • lerna add eslint --scope=package1:只有package1会装上。
  • lerna add eslint packages/prefix-*:符合prefix的包会装上。

options:

  • -dev:添加到devDependencies
  • --exact: 只安装特定版本

如果添加的是子项目,则会通过link软连接到对应的项目中。 lerna add package1 --scope=package2

Run 执行npm script命令

lerna run

你可能感兴趣的:(lerna以及lerna-changelog使用)