zoukankan      html  css  js  c++  java
  • lerna式升级

    使用lerna管理你的项目

    有段时间没更新博客了,是时候更新一波了。
    之前不是vue-next出了吗,然后就去学习了一下,发现整个目录不是那么熟悉了,变成这样了:

    于是就这个线索去研究了一下,发下这是用的 lerna + yarn 的架构,不仅vue,包括jest,babel等都是用的这类架构,他们有相同的前缀,比如@babel/xxx,不过这个前缀(scope)是需要付费的。

    lerna有什么优点呢?

    • 分离一个大型的codebase到多个小的孤立或者公共的repo
    • 可以统一管理版本号,一键发布,自动生成changelog(lerna publish)
    • 一键安装依赖,包括link(lerna bootstrap)
    • 目录清晰,像上面vue-next那样。

    所以说!

    开整!!!

    首先使用lerna + yarn来管理我们的npm工作区:
    所以创建一个空的reop,然后npx lerna init初始化lerna项目,然后左改改右改改,像下面这样,意思是说用yarn替代lerna的工作区定义,然后pkg中指定workspaces,指定private和root,表明别发布我。

    // lerna.js
    {
        "version": "independent",
        "npmClient": "yarn",
        "useWorkspaces": true
    }
    
    
    // package.json
    {
        "name": "root",
        "private": true,
        "workspaces": [
            "packages/*",
            "demo"
        ]
    }
    

    哈哈哈哈,开个玩笑,不过lerna的初始工作就好了,剩下的就是安装依赖啊,写代码啊,发布啊。用指令表示就是:

    • lerna bootstrap(或者增加postinstall hooks自动执行)
    • 写代码
    • lerna version 指定版本
    • lerna publish (前需要登录npm,例如: npm login)

    不过,仅仅只有上面这些肯定是不够的,我们还需要增加:

    • 本地预览
    • 本地unit测试
    • 一些自动化脚本
    • 格式化检查工具
    • 其他(ts、commitlint、cz)

    这块就不啰嗦了,直接丢一个repo: oneForAll供大家参考,欢迎交流哈。
    目录如下:

  • 相关阅读:
    卷积神经网络(3)
    卷积神经网络(2)
    五款最佳Linux下载管理器推荐
    SSH如何通过公钥连接云服务器
    揭露QPS增高后的秘密
    总结六条对我们学习Linux系统有用的忠告
    第一款支持容器和云部署的开源数据库Neo4j 3.0
    /etc/bashrc和/etc/profile傻傻分不清楚?
    手把手教你crontab排障
    awk系列:在awk中如何使用流程控制语句
  • 原文地址:https://www.cnblogs.com/xiaoyuxy/p/11983219.html
Copyright © 2011-2022 走看看