文章主要包含:
一些工作中常用的命令。
Lerna管理项目,有哪些优缺点?
命令
lerna init
该命令用于创建(或更新当前lerna)一个用lerna管理的项目。
lerna create〈name〉
创建新的包,放置于根目录下的packages文件夹下。
lerna add <package>
安装依赖,可配置参数:
- 单独安装到某个包:
lerna add <package> packages/name
// 或通过包名
lerna add <package> --scope=packageName
- 指定依赖项添加方式
lerna add <package> --scope=packageName --dev/exact/peer
lerna bootstrap --ignore-prepublish
安装外部依赖并将本地有引用关系的包链接到一起。
lerna link
类似npm link,建立软件包的软链接。
lerna run <script>
执行包下的npm脚本,可单独指定执行某个包。
lerna run --scope packageFileName <script>
lerna exec -- <command>
可执行包下的任意指令。
lerna exec -- ls
// 指定单个包
lerna exec --scope packageFileName -- ls
lerna changed
查看存在变更的包。
lerna diff
查看包的变更内容。
lerna diff
// 指定单个包
lerna diff [packageName]
lerna version
更新有变更的包的版本号。
// patch-小版本,major-主版本,minor-次版本,pre*-内部测试版本,如从1.0.0跳到1.0.0-alpha.1
lerna version patch
lerna publish
发布
lerna list
列出有哪些包
优缺点
优点
- 代码共享和复用,packages下的包都可互相共享代码,减少代码冗余。
- 依赖管理,若是开发大型前端框架类项目,将所有的包需要的依赖都在项目根目录下进行管理,避免各包单独管理依赖时用到的相同依赖的版本不一致。
- 统一的版本管理,通过简单的命令,完成版本号的更新。
- 若是开发大型前端框架类项目,将其下所有模块内容集中到一起,方便开发和管理,若有更新,也更方便调试和进度协调。
缺点
- 团队协作极易出现冲突,集中在一起开发,若是修改到公共代码或在某个包下引入的某些依赖不恰当,都可能引起冲突或阻塞。
- 项目集中在一起,每次拉取仓库和拉取资源时间都较长,项目越大,所用本地资源也越大