#关键词#
- Lerna
- 脚手架
#Lerna入门#
一、原生脚手架开发痛点分析(package越多,管理复杂度越高)
1、痛点1:重复操作
- 多Package本地link
- 多Package依赖安装
- 多Package单元测试
- 多Package代码提交
- 多Package代码发布
2、痛点2:版本一致性
- 发布时版本一致性
- 发布后相互依赖版本升级
二、Lerna优势(优化基于git+npm的多package项目的管理工具)
- 大幅减少重复操作;
- 提升操作的标准化
#Lerna开发脚手架流程#
#基于Lerna搭建脚手架框架#
1、创建lerna脚手架项目
- 创建hdk-cli目录
- npm初始化:npm init
- lerna初始化:lerna init
2、lerna 核心操作
- 创建core package:lerna create core
- 创建utils package:lerna create utils
- 对指定package安装依赖:lerna add module-1 packages/core/,对全部package安装依赖:lerna add module-1,清除依赖:lerna clean,重新安装依赖:lerna bootstrap
- 多包依赖link:lerna link
- lerna exec -- rm -rf node_modules/:执行上下文不是在根目录,而是在每个package当中;指定单个package执行:lerna exec --scope @hdk-cli/core -- rm -rf node_modules/
- lerna run test:执行每个package下的npm script里的test脚本,执行单个package:lerna run --scope @hdk-cli/core test
#Lerna发布流程#
1、lerna version:标记版本
2、lerna publish:发布版本
3、注意事项:当出现发布失败时,版本号依然会增,git会依然打tag,当处理完重新lerna pblish会报No changed packages to publish,如果处理不涉及代码内容的更改,则后续可以使用命令 lerna publish from-git