入门lerna

overview

lerna是一个“一库多包”的管理工具。
一库多包:在一个仓库中包括了多个代码包。
这样作能够解决若干相关包的关联/共享功能。还能够跟踪版本。npm

demo

overview

建立一个能够输出文本的包。json

init

mkdir lerna-demo1
cd lerna-demo1

运行结果如图
bootstrap

create

添加一个lerna管理的包(calc)。ide

lerna create calc
lerna create pointer

edit

编辑calc/lib/calc.js为以下代码:工具

'use strict';

module.exports = {
    add: (a, b) => a + b,
    subtract: (a, b) => a - b,
    multiply: (a, b) => a * b,
    divide: (a, b) => a / b,
}

编辑pointer/lib/calc.js为以下代码:ui

'use strict';

let calc = require('calc')
module.exports = {
    construct: (x, y) => {
        return {x, y}
    },
    distance: (p0, p1) => {
        let x = calc.subtract(p0.x, p1.x)
        let y = calc.subtract(p0.y, p1.y)
        return Math.sqrt(calc.multiple(x, x), calc.multiple(y, y))
    },
}

add

clac包中添加lodash依赖包。spa

leran add lodash --scope=calc   // 只在calc包中安装lodash。在calc中就能够使用lodash了。
lerna add calc                  // 在全部适合的包安装calc.i该示例中只所pointer是适合的包。因calc不能依赖本身,因此它不是适合的包。

bootstrap

为了展现该命令的使用方法,再建立一个lerna管理的包(line).code

lerna create line

编辑./packages/line/package.jsonip

...
"dependencies": {
    "pointer": "^0.0.0"
}

而后执行
lerna boostrap
结果如图
ci

publish

请执行npm login登陆npm.
再执行

lerna publish from-package

而后会报错。

lerna ERR! E403 You do not have permission to publish "calc". Are you logged in as the correct user?

缘由是当前开发的包名与已发布的包名重复了。(想一个好包名太难。)请读者把三个包中的名改成不重复的包名。再执行lerna publish from-package
而后就发布成功了。

后记

请删除因运行本示例产生的包。
npm unpublish <packagename> --force.

lerna bootsrap & lerna add

lerna add lerna bootstrap
把依赖项(本地来源或远端来源)添加到package.json中。 根据package.json安装依赖。
相关文章
相关标签/搜索