01月30, 2018

lerna基本使用

这周本以为将年日历集成到日期组件中,需要花一些天的,没想到昨天下班前就顺利搞定。

这也给了我一些偷懒的时间,于是今天看了一些技术性的文章,还有这个lerna。

先说一下我为什么有这个需求。

我有两个包,A和B。A依赖于B,在一开始的时候,B肯定会经常改动。这样一来,每次都得publish才行,或者使用install-local这个包(然而它不会将依赖写到package.json中)

而lerna的定义是:

Lerna 是一个用来优化托管在git\npm上的多package代码库的工作流的一个管理工具,可以让你在主项目下管理多个子项目,从而解决了多个包互相依赖,且发布时需要手动维护多个包的问题。

看起来差不多能解决我上面的一些问题,且多个包放在一起,比较适合管理。(当然了,如果repo太大,也不是太好,这时候我想可以考虑git submodule了吧)

于是开始实战。

step1

npm install -g lerna

step2

新建一个目录,譬如zpu-lerna-example。然后执行

npm init -y
lerna init

step3

新建测试package包,假设我建两个文件夹:zpu-module-a、zpu-module-core,前者依赖后者。

首先先各自到文件夹中npm init -y,随后给zpu-module-a的package.json文件中加入zpu-module-core的依赖:

"dependencies": {
    "zpu-module-core": "^1.0.0"
  }

回到根目录(zpu-lerna-example),执行:

lerna bootstrap

它便会在zpu-module-a中新增一个node_modules文件夹,做了一层npm link。

alt

step4

最后一步应该是发布,命令如下:

lerna publish --skip-git

后面的--skip-git,表示跳过git的一些操作。

alt

alt

发布成功,还是比较容易的。。

本文链接:www.my-fe.pub/post/lerna-basic-use.html

-- EOF --

Comments

评论加载中...

注:如果长时间无法加载,请针对 disq.us | disquscdn.com | disqus.com 启用代理。