接着之前的思路,现在我们已经完成了项目的初始化构建,然后开始往里面写新的package。

    在写入的package后就需要涉及到上传的问题了,如果是开源项目,那直接使用lerna的publish命令即可。但是比如一些公司的技术沉淀之类的整合,有很多是不适合直接公开在网络上的,所以需要的是上传私有库。比起npm的私有包的方案,其实我更倾向于搭建私有npm仓库的做法。一来,代码是存储在自己的服务器的。二来,lerna也默认不允许直接发布私有包。

私有npm仓库的搭建

    目前网络上开源的构建私有npm的框架很多。最出名的就是淘宝cnpm开源的[cnpm.org](<https://github.com/cnpm/cnpmjs.org>),这个库可以说把整个cnpm的功能都实现的,功能十分强大。不过代价就是搭建十分麻烦,而且较为不稳定,时常出现奇怪的bug。

    对于普通公司来说,其实并没有那么全的功能需求的,其实只要满足基本的功能就足够使用了。所以这里我选择的是一个十分小众的框架[CPM](<https://cevio.github.io/cpm/>)

    这个框架的搭建十分简单,按照官方文档搭建,很快便可以搭建成功。不过有几个要注意的点:

整合lerna发布

    在搭建好了自己的npm仓库后,就可以开始尝试发布自己的模块了。因为我们私有的模块是基于npm的,所以记住,千万不能在配置文件中将lerna的client设置成“yarn”。

    然后,我们可以:
git add .
git-cz
lerna publish --registry=http://xxxx.com:7001

使用git-cz格式化我们的commit,然后使用lerna publish命令。lerna会帮我们将代码push到github对应的分支,同时依次将各个模块上传到私有的npm仓库中,同时还会修改每个package的版本号,然后去修改每个相互依赖package的版本号。

注意点: