• lerna存在的必要性


    lerna是什么,它解决了什么问题

    • 在开发脚手架过程中通常会采用分包开发
    • 将需要分包的lib文件夹使用npm link的方式,在全局node_modules 下面添加一个指向开发目录的软连接
    • 在执行文件开发目录下通过 npm link lib 的方式添加一个指向全局node_modules的包
    • 它的执行过程是这样的
    • 操作系统解析主命令找到可执行文件cmd 或软连接,执行全局node_modules下的软连接或快捷方式
    • 全局node_modules下的软连接指向开发目录的可执行文件
    • 运行文件通过node内置的module模块中的path一层层向上查找需要的包,找到lib包发现是软连接或快捷方式
    • 其指向的是全局node_modules下的lib包,然后继续查找通过全局node_modules找到开发目录的lib包

    上述过程无疑是非常繁琐的,当一个项目package的数量达到十个二十个的时候,再使用这种方式分包开发,将是非常难以管理的。
    数十个package改变版本号,数十个package同时依赖一个utils package,当一个包发生修改,其他依赖它的包都要相对更改,这是不符合OCP原则的
    同时会有非常多的重复工作,package之间的管理将会非常复杂

    总结一下在多package项目开发中遇到的问题

    • 大量的重复性工作,link操作,修改版本号,publish,等等
    • 版本与版本的依赖关系难以管理容易出错
    • 每一个package都需要手动publish到npm
    • 如何将所有package进行单元测试
    • 多package版本很难保持一致性

    lerna的存在就是为了解决以上问题,lerna是一个基于npm和git的多package管理工具

  • 相关阅读:
    前端——HTML
    前端——Bootstrap
    前端——jQuery
    ORM——对象关系映射01
    并编程复习——协程,池
    设计模式--代理模式&装饰器模式
    设计模式--原型模式
    设计模式--建造者模式
    设计模式--工厂类相关模式
    设计模式--单例模式
  • 原文地址:https://www.cnblogs.com/tengx/p/16270931.html
Copyright © 2020-2023  润新知