lerna 介绍

lerna 处理机构

固定模式(fixed)

所有包是统一的版本号,每次升级,所有包版本统一更新,不管这个包内容改变与否

具体体现在,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 <script> --[...args]

Exe

单独运行某个包下的script命令

lerna exec -- <command> [...args]
# example
$ lerna exec -- rm -rf ./node_modules
$ lerna exec -- protractor conf.js

Add

安装本地或者远程的包

lerna add <package>[@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

lerna 常用命令相关推荐

  1. 多包管理工具lerna搭建项目---基本常用命令

    基本常用命令 Step 1 安装Lerna 推荐全局安装,因为会经常用到 lerna 命令 npm i -g lerna Step 2 项目初始化 lerna init 其中 package.json ...

  2. Kubectl 常用命令, 开发人员常用k8s命令

    Kubectl 常用命令: 什么是常用,我用的,就是常用的

  3. docker常用命令详解

    docker常用命令详解 本文只记录docker命令在大部分情境下的使用,如果想了解每一个选项的细节,请参考官方文档,这里只作为自己以后的备忘记录下来. 根据自己的理解,总的来说分为以下几种: Doc ...

  4. 客快物流大数据项目(十五):DockeFile常用命令

    目录 DockeFile常用命令 一.FROM 二.​​​​​​​MAINTAINER 三.​​​​​​​RUN

  5. 客快物流大数据项目(九):Docker常用命令

    目录 Docker常用命令 一.帮助命令 二.镜像命令 1.搜索镜像

  6. linux常用命令(转载)

    Linux常用命令大全(非常全!!!) 最近都在和Linux打交道,感觉还不错.我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制,当然,这也是很多人喜欢linux的原因,比较短 ...

  7. maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令

    maven发布项目到私服-snapshot快照库和release发布库的区别和作用及maven常用命令 在日常的工作中由于各种原因,会出现这样一种情况,某些项目并没有打包至mvnrepository. ...

  8. linux kvm虚拟化命令,Linux系统下kvm虚拟化(三)日常管理常用命令和配置说明

    根据我们之前创建和一些操作可以知道,KVM虚拟机的管理主要是通过virsh命令对环境下kvm虚拟机进行管理,下边这里整理一些常用的配置说明以及如何进行日常管理维护. 1,查看KVM虚拟机配置文件 KV ...

  9. kubectl常用命令_《蹲坑学kubernetes》之十五:kubectl命令详解

    kubectl用于运行Kubernetes集群命令的管理工具.本章节主要讲了kubectl基本语法和使用方法.在以后的实际工作中,使用越来越多,也会越来越熟悉. 1.kubectl语法 kubectl ...

最新文章

  1. Python系列教程之学生信息管理系统
  2. 小牛电动CEO李彦内部信:再大困难 也成涅槃重生的试炼
  3. 用shell编写的贪吃蛇游戏
  4. java获取环境变量路径_通过System获取java环境变量的路径
  5. 计算机工程类高级职称,2019年工程类中高级职称都有哪些专业?
  6. android 极光推送测试,Android 3分钟带你集成极光推送
  7. 如何解决win10+VS2017+WDK环境下编译C++程序提示error LNK1104无法打开文件*.lib的问题
  8. Feature Preprocessing on Kaggle
  9. 数据结构与算法--代码完整性案例分析
  10. while循环 字符串格式化 运算符 编码初识
  11. 主梁弹性模量计算_桥梁支座详解全攻略!图文+计算详解,值得收藏!
  12. [windows]VS2015配置Lemon图论算法库
  13. 对数正态分布均值和方差控制着正态分布什么
  14. mac系统清理优化软件iMacCleaner Mac中文版
  15. 云数据库 MySQL使用规范 数据库开发人员一定要看!
  16. 用BootStrap框架编写旅游网页
  17. 云渲染可以渲动画吗?
  18. Linux获取机器码
  19. java8 stream tomap_Java8之Stream流(五)映射流
  20. PS 图像调整算法——黑白

热门文章

  1. java小项目---------银行新用户现金业务办理(运用数据库)
  2. 二维码条形码生成打印软件C#源码,根据变量自动添加抬头
  3. 数字IC验证方法的分类
  4. 【开发环境】 Ubuntu14.04 安装Skyeye 1.3.5过程
  5. 医疗管理系统-预约管理
  6. 方法教程:如何下载网易云音乐上的视频到本地电脑
  7. Codeforces Round #439 (Div. 2) E. The Untended Antiquity(二维BIT)
  8. 库里扛起了勇士对凯尔特人的第四场
  9. 关于我用过的机械键盘
  10. win10锁屏界面无法更换图片(亲测有效)