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. Linux 常用命令(持续补充)

    常用命令: command &:将进程放在后台执行 ctrl + z:暂停当前进程 并放入后台 jobs:查看当前后台任务 bg( %id):将任务转为后台执行 fg( %id):将任务调回前 ...

  2. LVM基本介绍与常用命令

    一.LVM介绍LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制LVM - 优点:LVM通常用于装备大量磁盘的系统,但它同样适 ...

  3. Linux学习笔记(一):常用命令

    经过统计Linux中能够识别的命令超过3000种,当然常用的命令就远远没有这么多了,按照我的习惯,我把已经学过的Linux常用命令做了以下几个方面的分割: 1.文件处理命令 2.文件搜索命令 3.帮助 ...

  4. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  5. 【原】npm 常用命令详解

    今年上半年在学习gulp的使用,对npm的掌握是必不可少的,经常到npm官网查询文档让我感到不爽,还不如整理了一些常用的命令到自己博客上,于是根据自己的理解简单翻译过来,终于有点输出,想学习npm这块 ...

  6. npm常用命令

    npm常用命令 环境:win7 npm 是什么 NPM(node package manager),通常称为node包管理器.顾名思义,它的主要功能就是管理node包,包括:安装.卸载.更新.查看.搜 ...

  7. Git 常用命令

    一.初始環境配置 git config --global user.name "John Doe"git config --global user.email johndoe@ex ...

  8. linux iptables常用命令之配置生产环境iptables及优化

    在了解iptables的详细原理之前,我们先来看下如何使用iptables,以终为始,有可能会让你对iptables了解更深 所以接下来我们以配置一个生产环境下的iptables为例来讲讲它的常用命令 ...

  9. Linux常用命令(一)

    Linux常用命令 1. pwd查看当前路径(Print Working Directory)    [root@CentOS ~]# pwd/root 2. cd .. 返回上一级 .. 表示上一级 ...

随机推荐

  1. python之set集合,基础篇

    集合:set 特点:1>.无序 ,因为集合是无序的,所以不可用下标值查询,也不可切片2>.去重 ,一个集合内不能有两个相同的元素3>.可添加,可删除,不可修改等等4>.集合内的 ...

  2. ubuntu 替换某一内核模块

    流程 方法一 以下配置仅执行一次,并以 linux kernel 3.13.0 为例 $ cd ~ $ apt-get source linux-source-3.13.0 $ cd linux-3. ...

  3. NetCore微服务简单流程审批数据库设计及后台服务开发

    1.数据库设计 -- ---------------------------- -- Table structure for TBase_Flow -- ----------------------- ...

  4. 深入理解Java并发类——AQS

    目录 什么是AQS 为什么需要AQS AQS的核心思想 AQS的内部数据和方法 如何利用AQS实现同步结构 ReentrantLock对AQS的利用 尝试获取锁 获取锁失败,排队竞争 参考 什么是AQ ...

  5. Adaptive AUTOSAR 学习笔记 5 - 架构 - 物理视图

    本系列学习笔记基于 AUTOSAR Adaptive Platform 官方文档 R20-11 版本 AUTOSAR_EXP_PlatformDesign.pdf 缩写 AP:AUTOSAR Adap ...

  6. python找出字典中value最大值的几种方法

    假设定义一字典,m = {"a":3,"e":6,"b":2,"g":7,"f":7,"c ...

  7. 题解 guP4552 IncDec Sequence

    这道题是一道差分的题目 差分数组p即p[i]=a[i]-a[i-1] 如果我们把一个区间[l,r]里的数+1,那么我们不难发现p[l]'=a[l]+1-a[l-1]=p[l]+1,p[r+1]'=a[ ...

  8. VS2013产品密钥

    VS2013 产品密钥 – 所有版本  Visual Studio Ultimate 2013 KEY(密钥):BWG7X-J98B3-W34RT-33B3R-JVYW9 Visual Studio ...

  9. C控制台程序 GUI程序

    控制台程序对应的工程类型为"Win32控制台程序(Win32 Console Application)",GUI 程序对应的工程类型为"Win32程序(Win32 App ...

  10. MapReduce学习总结之架构

    一.MapReduce1.x架构 1)jobTracker:JT 作业的管理者 将作业分解成一堆任务:Task(MapTask和ReduceTask) 将任务分派给TaskTracker(TT)运行 ...