共计 1247 个字符,预计需要花费 4 分钟才能阅读完成。
overview
lerna 是一个“一库多包”的管理工具。
一库多包:在一个仓库中包含了多个代码包。
这样做能够解决若干相干包的关联 / 共享性能。还能够跟踪版本。
demo
overview
创立一个能够输入文本的包。
init
mkdir lerna-demo1
cd lerna-demo1
运行后果如图
create
增加一个 lerna 治理的包(calc)。
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
为如下代码:
'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
依赖包。
leran add lodash --scope=calc // 只在 calc 包中装置 lodash。在 calc 中就能够应用 lodash 了。lerna add calc // 在所有适宜的包装置 calc.i 该示例中只所 pointer 是适宜的包。因 calc 不能依赖本人,所以它不是适宜的包。
bootstrap
为了展现该命令的应用办法,再创立一个 lerna 治理的包(line).
lerna create line
编辑./packages/line/package.json
...
"dependencies": {"pointer": "^0.0.0"}
而后执行 lerna boostrap
后果如图
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 装置依赖。 |
正文完