还是5W1H方式写比较合适

What

关于Lerna是什么? 官方给出的 走这 Lerna
简单点说就是JavaScript的包管理系统。当项目强解耦的时候,方便对于模块进行统一化管理。

Where

什么地方用? 关于什么地方用,这个问题,一般来讲,一个项目需要多人合作每人负责一小块内容或者对团队外部的开发者有强依赖的时候,可能就需要强解耦。也就是说,模块之间,影响需要降低至最小。一般来讲,项目构架是最重要的一环。Lerna只是作为管理的辅助工具,确切的说,是十分好用的一款辅助工具

When

什么时候? 这里还是说下程序

  • 安装

    1
    npm install --global lerna
  • 初始化

    1
    lerna init

之后你的项目里会有个packages/文件夹 模块放里面就行了

Who

谁来管?建议发包是某一个或某几个项目负责人,在确认模块协同工作无误时发包

Why

首先要保证模块强拆分,没人只要知道他擅长的一小块东西就可以了。普通开发者其实可以不用对全局有细致的了解。只要知道项目结构就可以进行开发。另外,由于其软链机制,新的模块间的协同工作也可以顺利保证。

How

这是个重头戏 其实也没多少东西

  • 依赖软链
    1
    lerna bootstrap

这是Lerna里最重要的一条命令,会将依赖模块软链到开发中的模块去,以至于改动对于最终的使用模块产生何种影响在开发时就有预知。

  • 发包、版本控制
1
lerna publish

Lerna里有两种版本控制模式,一种是同一版本的另一种是版本由模块分开。要注意的是,publish 之后,每个模块在npmjs(或其他代码仓库)都是一个独立package存在。也就是说,其他项目其实也可以依赖本身该项目的任何一个模块。需要模块真*各司其职。两种模式的配置可以在 lerna.json中进行管理。

总结

  • 安装

    1
    npm install --global lerna
  • 初始化

    1
    lerna init
  • 写模块 (敲代码)

  • 模块间用软链依赖

    1
    lerna bootstrap
  • 测试无误

  • 发包

    1
    lerna publish

其他一些命令

Lerna

最后补充

MCCREE用这玩意是因为

  • 毕竟不是我一个人的项目。团队其他人在参与,且后续升级会有新同学来折腾。
  • P2P和私有协议后续需要合作厂商进行添加。
  • MCCREE会对CDN联盟新的传输协议进行支持。需要新增 loader 以及 demuxer。