- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章基于 lerna 实现 Monorepo 项目管理由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
随着团队建设以及相关业务的日益增长,越来越多的 NPM 包需要多人协同维护,各个项目之间有关联,就不得不在多个编辑器之间切换,以及通过 npm link 来调试,开发的效率受到制约,那有没有一种方式可以解决现在的痛点?答案就是 Monorepo.
在字节跳动内部的百科词条中对于 Monorepo 的定义如下:
Monorepo 是一种将多个项目代码存储在一个仓库里的软件开发策略.
目前来讲,Lerna 作为 JavaScript项目的多包管理器,已经是比较成熟,并已被现代企业所验证,因此接下来将逐步搭建一个基于 Lerna[1] 的 Monorepo 管理环境,希望可以帮助大家在各司业务中落地并实现降本提效.
根据笔者经验,Monorepo 将显著提升开发人员的愉悦度,所以赶紧搞起来吧.
本文主要内容结构如下,朋友们可按需食用:
Monorepo 能被定义为策略,那么一定是一种能够解决问题的方案,基于 Lerna 实现的 Monorepo 多包管理方式,能解决的问题(优点)如下:
当然,Lerna 经过长时间的使用,一些问题也在生产环境中暴露出来,典型的如:
这里将问题罗列出来,不是说 Lerna 就应该被放弃,而是我们应当清楚技术方案的利与弊,并结合项目的实际情况做一些取舍,上述的缺点只是在构建中不那么优雅,但并不影响 Lerna 作为一种可落地 Monorepo 的方案.
我们将从 0 到 1 构建一个纯净的、基于 Lerna 的 Monorepo 项目,并将利于团队协作规范的 ESlint 校验,Prettier 自动格式化,以及 git commit message 规范一并完善.
首先就是得全局安装 Lerna:
然后就是新建项目目录,并使用 Lerna 初始化一个基本结构 。
如此之后,便得到了如下的一个文件目录结构:
Lerna 初始化项目的时候,追加了一个 --independent 的参数,其含义是使用独立模式.
在 Lerna 中,有两种模式:
一般我们都会选择独立模式,来避免多 package 下频繁发包的情况出现,尤其是在一些业务变化频繁的项目下,发包压力恐怖如斯 。
最后此篇关于基于 lerna 实现 Monorepo 项目管理的文章就讲到这里了,如果你想了解更多关于基于 lerna 实现 Monorepo 项目管理的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
我需要建议,我们有三个独立的项目,但其中一些项目共享一些依赖项,其他项目则与上下文相关。在maven pom中使用继承更好还是使用依赖更好? 最佳答案 取决于您所说的“与上下文相关”的含义。 一般来说
我正在寻找有关如何管理一个项目的多个版本的一些提示和技巧。 目前我有一个应用程序的开发版本,其中包括一些改进和新功能。与此同时,我必须解决一些错误。修复新功能未触及的文件上的错误很容易,但只要我触摸具
我的公司正在使用 GIT 重组我们的存储库。基本上,我们将有: (A) Master Repo,它是我们构建的生产部署的未构建镜像 (B) 用于修补程序的持续集成分支, (C) 用于主要/次要更新
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4年前关闭。 Improve thi
我想问一下你们中是否有人有任何经验{and,or}可以向我指出一个适用于 {Scala,Ensime,SBT} 的 Emacs 项目管理扩展。如果它不需要太多的黑客攻击,那也将是惊人的。我过去做过一些
我在 Eclipse 中同时使用 Java (J2SE) 和 C++(使用 CDT 插件)。所以我想管理单独的 Java 项目和 C++ 项目。我切换 C++ 视角,我看到一个名为“C/C++ 项目”
在服务器环境中,我希望编写URL路径来查询数据。在 Electron 中,因为我可以在应用程序的任何部分使用普通的 JavaScript 使用 NodeJS,所以两者之间似乎没有“分离”。 大部分代码
有人有使用 Maven 管理基于 C# 的项目的经验吗? 如果是,请告诉我几句话,创建这样的设置会有多奇怪。 谢谢 最佳答案 Maven 与语言无关,应该可以将它与 Java 以外的其他语言一起使用,
随着团队建设以及相关业务的日益增长,越来越多的 NPM 包需要多人协同维护,各个项目之间有关联,就不得不在多个编辑器之间切换,以及通过 npm link 来调试,开发的效率受到制约,那有没有一种
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是偏离
我知道VSS is awful,我只是伟大的生活机器中的一枚齿轮,并且学会了在治疗师的帮助下过着无力的感觉。但是,我想给这里带来一些混乱,与VSS集成的像FogBugz这样的真实问题跟踪/项目管理系统
我有一个 C++ 解决方案项目。对于该项目,我有一些配置文件,我想在项目中进行管理,并且在构建项目时,将这些配置文件添加到适当目录结构中的可执行构建路径中。 例子: test.exe 引用 confi
我刚刚迁移到 Android Studio,我对如何管理我的项目/模块有些困惑。 例如,在 Eclipse 中我有 3 个项目: 库项目(有几个 jar 库) App 项目 1(使用 Library
情况 我有项目 A 和项目 B,A 通过 Composer 依赖于 B。 B 在 A 中实现接口(interface)的功能。 我在 B 中有正确执行的单元测试。 现在,我想通过 API 进行测试——
我遇到了 Maven 的问题 ── bom-porject ├── pom.xml 这是bom proejct,仅用于外部maven依赖的依赖管理。 该项目只是将pom文件发布到maven r
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 3 年前。 Improve
再次声明:如果您投 -1,请发表评论解释原因。这篇文章不是关于您是否赞成这种方法,而是关于如何去做。 像许多架构师一样,我通过多年的经验制定了编码标准,我希望我的开发人员能够遵守这些标准。 对于那些认
对于在 TFS 中处理我们的项目的最佳方式,我有点困惑。 我们是符合 CMMI 3 级(致力于 4 级)的组织。因此,我们目前正在 TFS 中使用 MSF CMMI 流程模板,我正在对其进行定制以更好
我是一名优秀的程序员,十分优秀!