lerna 常用命令

lerna 介绍 lerna 处理机构
固定模式(fixed)

所有包是统一的版本号,每次升级,所有包版本统一更新,不管这个包内容改变与否
【lerna 常用命令】具体体现在,lerna 的配置文件 lerna.json 中永远会存在一个确定版本号:
{ "version": "0.0.1" }

典型例子: babelvue
独立模式(independent)
每个包是单独的版本号,每次lerna 触发发布命令,每个包的版本都会单独变化
具体体现在,lerna 的配置文件 lerna.json 中没有一个确定版本号,而是:
{ "version": "independent" }

lerna 安装
npm install lerna -g lerna -v

lerna 初始化
代码规范采用lerna提供的规范结构的话:
# 默认固定模式 lerna init # 要采用独立模式的话 lerna init -i # lerna init --independent

生成的代码结构
└── lerna/ ├── packages/ ├── lerna.json └── package.json

如果代码已经存在,则只需要在项目下创建lerna.json并补充相关字段
{ "useWorkspaces": true, // 使用 workspaces 配置。此项为 true 的话,将使用 package.json 的 "workspaces",下面的 "packages" 字段将不生效 "version": "0.1.0", // 所有包版本号,独立模式-"independent" "npmClient": "cnpm", // npm client,可设置为 cnpm、yarn 等 "packages": [ // 包所在目录,可指定多个 "packages/*" ], "command": { // lerna 命令相关配置 "publish": { // 发布相关 "ignoreChanges": [ // 指定文件或目录的变更,不触发 publish ".gitignore", "*.log", "*.md" ] }, "bootstrap": { // bootstrap 相关 "ignore": "npm-*",// 不受 bootstrap 影响的包 "npmClientArgs": [ // bootstr 执行参数 "--no-package-lock" ] } } }

lerna 相关命令
lerna官方文档https://lerna.js.org/
初始化
创建一个新的 lerna仓库或者将现有的仓库使用 lerna管理
lerna init # -i/--independent

Publish
发布包
lerna publish

Bootstrap
把所有包安装到根 node_modules
lerna bootstrap

Run
运行每个包中的 script命令
lerna run--[...args]

Exe
单独运行某个包下的 script命令
lerna exec -- [...args] # example $ lerna exec -- rm -rf ./node_modules $ lerna exec -- protractor conf.js

Add
安装本地或者远程的包
lerna add [@version] [--dev] [--exact] [--peer] #--dev 将新包添加到devDependencies而不是dependencies. #--exact 添加具有确切版本(例如1.0.1)而不是默认^semver 范围(例如^1.0.1)的新包。 #--peer 将新包添加到peerDependencies而不是dependencies.#将 module-1 包添加到 'prefix-' 前缀文件夹中的包中 lerna add module-1 packages/prefix-*#将模块 1 安装到模块 2 lerna add module-1 --scope=module-2#在 devDependencies 中将 module-1 安装到 module-2 lerna add module-1 --scope=module-2 --dev#在 peerDependencies 中安装 module-1 到 module-2 lerna add module-1 --scope=module-2 --peer#在除module-1之外的所有模块中安装module-1 lerna add module-1#在所有模块中安装 babel-core lerna add babel-core

原文地址: https://kspf.xyz/archives/136

    推荐阅读