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. 1、mysql基础入门(2)

    1.4.常用非关系型数据库产品介绍: 1.Memcached(key-value)数据库:

  2. Vue 全局组件

    全局注册的组件可以在其他组件内直接使用,它在整个Vue实例中都是全局有效的. 非单文件组件中使用 Vue.component('student-list', { template: ` <div ...

  3. 万字长文肝Git--全流程知识点包您满意【建议收藏】

    您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 本文将首先介绍在本地搭建GitLab服务,然后重点介绍Git的常用命令,Git的核心概念以及冲突处理,最后介绍Git与SVN的区别 干货满满,建议 ...

  4. Vulkan移植GPUImage的安卓Demo展示

    演示Android apk下载 需要Android 8以上. 先看效果图,大约一百多种滤镜,有超过一半的滤镜有参数设置,其参数调整界面使用反射自动生成与绑定. 如下每种选择一些进行展示. 视觉效果 图 ...

  5. CentOS-GitLab迁移(yum至Docker)

    yum备份迁移Docker版的GitLab 注:确保版本一致 1.yum备份 $ gitlab-rake gitlab:backup:create 2.执行完成后,在/var/opt/gitlab/b ...

  6. 第16章 pyinstaller库的使用

    pyinstaller库概述 将.py源代码,转换成无需源代码的可执行文件 .py文件通过pyinstaller转换成windows.linux以及mac的可执行文件 pyinstaller库是第三方 ...

  7. XXE学习(待更新)

    XXE基础 XXE(XMl External Injection),即XML外部实体注入漏洞. XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体得加载,导致可以加载恶意外部文件,造成文件读取 ...

  8. luogu P2710 数列

    (这是个双倍经验呀! 题目描述 维护一个可以支持插入.删除.翻转.区间赋值.求和.求值和求最大子段和操作的序列.(真·简洁) solution 基本不用什么神奇操作,平衡树硬上就行.(我用的 Spla ...

  9. 【多线程】C++ 互斥锁(mutex)的简单原理分析

    多线程是多任务处理的一种特殊形式,多任务处理允许让电脑同时运行两个或两个以上的程序.一般情况下,分为两种类型的多任务处理:基于进程和基于线程. 1)基于进程的多任务处理是程序的并发执行. 2)基于线程 ...

  10. Python运行时报错 ModuleNotFoundError: No module named ‘exceptions‘

    踩的坑: 搜教程,很多文章都推荐使用:pip install python_docx‑0.8.10‑py2.py3‑none‑any.whl 但是依旧报错. 成功的示范: 使用命令:pip3 inst ...