首页
学习
活动
专区
圈层
工具
发布

lerna-lite 轻量化 monorepo 管理利器

写作背景 微前端是一个新旧项结合挺常见的一种技术,我司也成功借助京东前端团队推出的 micro-app 完成了一主两从 3 个独立项目的完美结合。...我们在实际项目中可以采用渐进式的方式按需安装使用。...需要注意的一点是 lerna-lite 是不包括 bootstrap、add、create 和 link 命令的,所以需要正式使用 lerna-lite 之前配置好项目的包管理器(npm、pnpm、yarn...npm 作为项目的包管理器的话需要更新 lerna.json 配置文件中的 npmClient; 使用 yarn 配置:"npmClient": "yarn" 使用 pnpm 配置:"npmClient...列出工作区中的所有本地软件包 run npm i -D @lerna-lite/run 运行script 脚本 watch npm i -D @lerna-lite/watch 监听所有软件包的变更并执行自定义命令

59410

突破项目瓶颈:2024 年 Monorepo 工具选择和实践

「版本一致性:」 工作区功能有助于保持包的版本一致性,降低了由于版本不一致导致的问题。 「缺点:」 「学习曲线:」 对于不熟悉 pnpm 和工作区概念的开发者来说,需要一些时间来适应和学习。...「限制性:」 在某些高级场景下,npm Workspaces 可能无法提供足够的灵活性和功能,无法完全替代更专业的 Monorepo 工具。...使用度 在使用度方面的分析显示,Lerna 的使用率明显下降,从 25% 降至 22%。...与此同时,yarn Workspaces 和 npm Workspaces 的使用率都为 26%,已经超越了 Lerna,这表明开发者对于更集中的 Monorepo 管理方式的需求在增加。...如果我们对稳定性有更高的要求,那么相较于 Changesets,Lerna 在版本管理和发布方面的操作更为简单;而如果我们更注重管控的灵活性,且存在 Lerna 无法满足的需求场景,那么 Changesets

3.5K32
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    读完 Vue 发布源码,小姐姐回答了 leader 的提问,并优化了项目发布流程~

    目前最常见的 monorepo 解决方案是使用 lerna 和 yarn 的 workspaces 特性去处理仓库的依赖,我搭建的组件库也是使用了 lerna 和 yarn。...从 1.0 版开始支持 Workspace (工作区),Workspace 可以更好的统一管理有多个项目的仓库。...对比我在搭建组件库过程中使用的 lerna,其实 lerna 是把 release 这一套流程封装成了一个包,它里面处理发包的流程跟 Vue Release 流程基本是一致的。...后来了解到了 yarn workspace,知道它可以处理依赖安装的问题,但版本号的处理还是没有解决方案。于是我去寻找业内比较流行的解决办法,发现大部分是使用了 lerna。...它不是搭建组件库非必要引入的工具,虽然引用了 lerna 会增加了新的复杂度,但在不了解发包流程的前期使用 lerna 可以使组件库开发者更专注于组件开发的工作上,而不需要过度关注如何发包。 5.

    1.3K30

    Angular 6正式版发布,都有哪些新功能

    在Angular 5发布半年之后,Angular 6在昨天正式发布,那么在这个版本有哪些新功能呢?新版本重点关注工具链以及工具链在 Angular 中的运行速度问题。...ng update不会取代你的软件包管理器,而是在后台使用 npm 或 yarn 来管理依赖包,除了更新和监视依赖包外,ng update还会在必要的时候对你的项目进行改造。...CLI v6 现已支持多项目工作区,如多个应用程序或库,CLI 项目用 angular.json 取代 angular-cli.json 构建和配置项目。...每个 CLI 工作区都有项目,每个项目都有目标,每个目标都可以有配置。...之前只有 v4 和 v6 是 LTS 版本,但为了使开发者从一个主版本更新到另一个主版本更容易,并给予项目充足的时间来规划更新,Angular 团队表示从 v4 开始,将扩大对所有主版本的长期支持。

    5.8K20

    Sentry 官方 JavaScript SDK 简介与调试指南

    首先,安装所有依赖项,使用 lerna 引导工作区,然后执行初始构建,以便 TypeScript 可以读取所有链接的类型定义。...运行测试 运行测试与构建的工作方式相同 - 在项目根目录运行 yarn test 将对所有包运行测试,在特定包中运行 yarn test 将为该包运行测试。还有一些命令可以在每个位置运行测试的子集。...注意:你必须在 yarn test 工作之前运行 yarn build。 调试测试 如果您在编写测试时遇到麻烦并需要调试其中之一,您可以使用 VSCode 的 debugger 来完成。...如果您尚未安装它,请安装 Tasks Shell Input 扩展,您可以在侧边栏的“扩展”选项卡中找到它作为推荐的工作区扩展之一。...Linting 与构建和测试类似,linting 可以通过调用 yarn lint 在项目根目录或单个包中完成。 注意:你必须在 yarn lint 工作之前运行 yarn build。

    3K20

    Vue.js 首次屈居第二,JavaScript 2020 年度“新起之秀”都有谁?谁是第一呢?

    起初,Next.js 作为在服务器上呈现 React 应用程序的解决方案而闻名。现在,它是使用 React 构建全栈 Web 应用程序的领先解决方案。...另外,一个新的网络构建工具 Vite 也在 2020 年问世。该工具由 ES 模块提供支持,是从命令行开始使用 Vue.js 应用程序的最快方法。 ? ?...Angular 10 于 6 月份发布,更新了部分组件以及配置,包括新的日期范围选择器,使用了新的默认浏览器配置,加入限制更严谨的严格模式。...Monorepos 正在成为主流:Yarn 和 Lerna 被广泛使用,npm 7 也加入了进来。 2021 年看点:Rome、Toast、Turborepo。 ? ?...而工具上,NPM 的第 7 版提供了可在单个存储库中处理多个包的工作区,这曾是其竞争对手 Yarn 的一大优势。

    2.6K20

    写在 2021: 值得关注学习的前端框架和工具库

    Angular! Angular[15] 是我最近正在学的框架,在开始前我其实是拒绝的,但写了两个例子之后我觉得真香!...我正在捣鼓的新项目就是基于Angular + Nest,越写越爽。 如果你打算Angular和Nest都学,我的建议是先学Nest,这样入门Angular的学习路线会更平滑一点。...Yarn Workspace[79],Yarn提供的Monorepo工具,有看到实践是用Lerna来管理版本,Yarn Workspace管理依赖。...PNPM[80],实际上是包管理工具,但内置了Monorepo支持,我也在用这个(强烈安利),想要了解可以看看三元的这篇文章:为什么现在我更推荐pnpm而不是 npm/yarn ?...: https://github.com/lerna/lerna [79] Yarn Workspace: https://yarn.bootcss.com/docs/workspaces/ [80]

    5.3K10

    2020 年的 JavaScript 后起之秀

    最初,它作为在服务器上呈现 React 应用程序的解决方案而闻名。现在,它是使用 React 构建全栈 Web 应用程序的出色解决方案。...由 ES 模块提供支持,这是从命令行开始使用 Vue.js 应用程序的最快方法。 Angular 生态 排名前 5 位的 Angular 项目与去年基本相同,除了排名第三的新竞争者。...Monorepos 成为主流:Yarn 和 Lerna 被广泛使用,支持 npm 7。 2021 年值得关注的个人精选:Rome,Toast,Turborepo CSS 框架 ?...前端开发人员现在可以使用诸如 esbuild,Snowpack 和 Vite 之类的解决方案来更快,更简单地构建工具。 说到工具,NPM 的第 7 版提供了用于在单个存储库中处理多个软件包的工作区。...现在,塞巴斯蒂安·麦肯齐(Sebastian McKenzie)在罗马全职工作,将统一 JavaScript 工具的努力将走多远。它可能是处理编译,测试,整理...

    2.7K20

    Angular 10 正式发布,不再支持 IE910!

    /components/datepicker/overview#date-range-selection 关于 CommonJS 导入的警告 当用户使用 CommonJS 打包的依赖项时,它可能导致应用程序膨胀且变慢...CommonJS 或 AMD 依赖项可能导致优化 bailout 可选的更严格设置 当你使用 ng new 创建新的工作区时,v10 提供了一个更严格的项目设置选项。...Angular Package Format 不再包含 ESM5 或 FESM5 包,在为 Angular 包和库运行 yarn 或 npm install 时,这可以节省 119MB 的下载和安装时间...http://v10.angular.io/guide/deprecations 如何更新到 v10 版本 请访问 update.angular.io 以获取详细信息和指导。...要更新时: ng update @angular/cli @angular/core 你可以在我们的 v10 版本更新指南中了解更多细节。

    3.3K20

    一个Angular 5教程:一步一步指导实现你的第一个Angular 5应用程序

    对我而言,最好使用更智能的编辑器vim,因为它会为代码中的任何错误提供额外的补充,因为TypeScript是强类型的。...因此,通过使用Angular CLI,我们已经在开发环境中工作,无需编写配置或实际执行任何操作。但我们此时刚刚开始...... 组件 我们有我们的空应用程序运行。...所以要添加Sass,我正在使用yarn: yarn add sass yarn add v1.3.2 [1/4] ? Resolving packages... [2/4] ?...在我们实现它之前还有一件事:这个输入看起来有点多,不是吗?实际上,Angular为我们提供了一些糖语,我们可以在这里使用它,所以我从另一个角度开始解释糖的工作原理。...使用模板驱动的表单与以前使用简单的HTML表单完全相同。如果我们需要更复杂的东西,那么在Angular中有一种不同的形式:反应式。我们将介绍转换表单后他们的反应。

    47.4K10

    基于 lerna 的多包 JavaScript 项目搭建维护笔记

    大家好,我是洛竹?,一只住在杭城的木系码妖??‍♀️,如果你喜欢我的文章?,可以通过点赞帮我聚集灵力⭐️。 将大型代码仓库分割成多个独立版本化的 软件包(package)对于代码共享来说非常有用。...但是,例如 Babel、 React、Angular、Ember、Meteor、Jest 等项目以及许多其他项目则是在 一个代码仓库中包含了多个软件包(package)并进行开发。...Lerna 是一种工具,针对 使用 git 和 npm 管理多软件包代码仓库的工作流程进行优化。...yarn workspaces & Lerna Hoisting 使用 yarn workspaces 结合 Lerna useWorkspaces 可以实现 Lerna Hoisting。...之间的依赖 $ lerna add module-2 --scope module-1 共用的工具依赖 $ yarn add -WD typescript lerna.json version:

    88530

    前端工程化实践:Monorepo与Lerna管理

    更好的依赖管理:可以更容易地管理项目间的依赖关系。Lerna简介Lerna是一个命令行工具,用于在Monorepo中管理多包项目。它提供了版本管理和发布功能,使得在单个仓库中管理多个npm包变得简单。...然后,在项目根目录安装Lerna:npm install --save-dev lerna# 或yarn add --dev lerna初始化Lerna项目在项目根目录运行以下命令初始化Lerna:npx...使用Lerna命令Bootstrap:初始化所有包的依赖关系。 npx lerna bootstrapAdd:在包之间添加依赖。...{ "concurrency": 4}Lerna还使用npm的package-lock.json或yarn.lock文件来确保每次安装时的依赖一致性。...它允许在一个仓库中管理多个依赖,并自动解决跨包依赖。Workspaces适合那些主要使用Yarn作为包管理器的项目。

    64500

    Monorepo(单体仓库)与 MultiRepo(多仓库): Monorepo 单体仓库开发策略与实践指南

    Nx:一个构建用于企业级 Angular 应用程序的工具,采用 Monorepo 方案来管理其所有插件和工具。...Yarn Workspaces:Yarn 的一项功能,允许在 Monorepo 中高效管理依赖,减少重复安装的依赖包。...本地链接:通过工具(如 Lerna、Yarn Workspaces 或 pnpm Workspaces)实现本地依赖的链接,确保项目之间的依赖关系清晰。 3....配置 pnpm 工作区 新建 pnpm-workspace.yaml 文件 touch pnpm-workspace.yaml 声明对应的工作区 # pnpm-workspace.yaml packages...创建工作区目录和示例项目 在根目录创建相应的工作区目录以及示例项目 # 新建 packages 目录 mkdir packages # 新建 components 目录 mkdir components

    1.7K10

    写在2021: 值得关注学习的前端框架和工具库

    Angular! Angular 是我最近正在学的框架,在开始前我其实是拒绝的,但写了两个例子之后我觉得真香!...我正在捣鼓的新项目就是基于Angular + Nest,越写越爽。 如果你打算Angular和Nest都学,我的建议是先学Nest,这样入门Angular的学习路线会更平滑一点。...Lerna,我用这个作为工程项目的Monorepo管理。 Yarn Workspace,Yarn提供的Monorepo工具,有看到实践是用Lerna来管理版本,Yarn Workspace管理依赖。...PNPM,实际上是包管理工具,但内置了Monorepo支持,我也在用这个(强烈安利),想要了解可以看看三元的这篇文章:为什么现在我更推荐pnpm而不是 npm/yarn ?...但还是推荐了解一下,毕竟我个人是喜欢这种稳定性保障的工作的,并且看着一个个测试用例通过也很有成就感。

    3.6K10

    Angular 11正式发布:加入webpack 5,升级至TS 4.0,不再支持IE 9 和10

    在编译时,Angular CLI 将下载和内联在应用程序中使用和链接的字体。我们会在使用版本 11 构建的应用中默认启用此功能。要利用这一优化,你需要做的就是更新自己的应用!...在版本 11 中我们更新了 CLI,允许开发人员在使用 ng serve 启动应用程序时启用 HMR。...关于 HMR for webpack 的信息,请参见: https://webpack.js.org/guides/hot-module-replacement 现在,在开发过程中,对组件、模板和样式的最新更改将立即更新到正在运行的应用程序中...要在项目中启用它,请将以下部分添加到 package.json 文件中: "resolutions": { "webpack": "5.4.0" } 目前,你需要使用 yarn 进行测试,因为...这也反映了我们所使用的方法,通过这种方法我们可以逐步推进更多工作,并允许开发人员提供早期反馈,使我们能将这些反馈引入最终版本中。

    4.3K30

    【ASP.NET Core 基础知识】--前端开发--集成前端框架

    模块化架构: Angular使用模块化的架构,允许将应用程序拆分为多个独立、可重用的模块。这有助于提高代码的可维护性,同时允许开发团队并行工作。...依赖注入: Angular的依赖注入系统有助于组织和管理应用程序的组件之间的依赖关系。这使得代码更容易测试、理解和扩展。...需求频繁变更的项目: 双向数据绑定和组件化开发风格使得Angular在需要频繁变更的项目中表现出色。修改数据模型后,视图会自动更新,降低了手动DOM操作的工作量。...2.2 安装前端框架依赖 安装前端框架依赖通常需要使用包管理器,比如npm(Node.js 包管理器)或者Yarn。下面我将分别展示如何使用这两种包管理器安装前端框架依赖。...Angular 集成 创建 Angular 应用: 在命令行中使用 Angular CLI 创建一个 Angular 应用程序。

    3.7K00

    lerna最佳实践

    最佳实践 前面我们已经介绍了 lerna 的相关概念和基本用法,目前最常见的解决方案是基于 lerna 和 yarn workspace 的 monorepo 工作流。...由于 yarn 和 lerna 在功能上有较多的重叠,我们采用 yarn 官方推荐的做法: 用 yarn 来处理依赖问题,用 lerna 来处理发布问题。...yarn workspaces 与 lerna yarn workspaces 是 yarn 提供的 monorepo 的依赖管理机制,用于在代码仓库的根目录下管理多个 package 依赖,与 lerna...总结 以上就是一个完整的基于 lerna + yarn workspace 的 monorepo 的实践流程,里面包含了依赖包的管理、完善的工作流、统一的代码风格、一键发布机制等,当然还有一些不够完善的地方需要自己补充...参考链接: erna 使用指南 lerna+yarn workspace+monorepo项目的最佳实践 Lerna+Yarn workspace管理多npm Yarn Workspace使用指南

    2.3K20
    领券