首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏全栈前端精选

    深入 lerna 发包机制 —— lerna publish

    前言:lerna 作为一个风靡的前端 monorepo 管理工具,在许许多多的大型项目中都得到的实践,现在笔者在公司中开发的 monorepo 工具中,monorepo 中子项目的发包能力就是基于 lerna 在上一篇文章中介绍完了 lerna version 的运行机制后,那么在本篇文章中我将继续介绍一下 lerna 发包机制中最关键的一个 command 即 lerna publish。 现在我们来继续介绍 lerna publish 运行机制,作为发包机制中的最后决定性的一个指令,lerna publish 的做的工作其实很简单,就是将 monorepo 需要发布的包,发布到 npm 同样 lerna publish 也分为几种不同的场景去运行: lerna publish # lerna version + lerna publish from-git lerna publish 总结 本文从源码角度剖析了一下 lerna publish 的执行机制,对于一些边界的 corner case 有些删减,按照主线讲解了 lerna publish 是怎么完成 lerna monorepo

    5K30发布于 2021-09-27
  • 来自专栏全栈前端精选

    深入 lerna 发包机制 —— lerna version

    lerna 发包设计到两个比较关键的指令分别为 lerna version 和 lerna publish 这两个指令。 因为篇幅原因,我将分为两个系列去分别介绍这两个指令,本篇文章将从 lerna version 开始,在下篇中我会介绍一下 lerna publish 的工作原理,相信在我介绍完成之后,大家都会对 lerna lerna version 本身在 lerna 中是一个很重要的指令,有许多其他的指令例如在 lerna 中 two primary commands 之一的 lerna publish 都是基于该指令进行相关的工作 那我们直接开始来看一下 lerna version 的具体实现,具体源码地址为: https://github.com/lerna/lerna/tree/main/commands/version lerna version 的工作原理,在使用 lerna 进行发包相关的操作的时候,lerna version 起到了一个很重要的作用,如果单独使用 lerna publish,一般选项情况下也是会首先进到 lerna

    3.2K30发布于 2021-09-27
  • 来自专栏前端架构师笔记

    lerna最佳实践

    lerna lerna 是一个管理工具,用于管理包含多个软件包(package)的 JavaScript 项目。 lerna 的最佳实践。 基本用法 安装 $ npm install --global lerna 创建一个git仓库 $ git init lerna-repo && cd lerna-repo 初始化一个 lerna 仓库 初始化之后的工程目录结构如下: lerna-repo ├── lerna.json ├── package.json └── packages lerna.json: { 发布 以上包确认没有问题之后,就可以通过执行 lerna publish 进行发布了。 在进行 publish 之前需要首先提交你的代码,否则 lerna 会报错: lerna ERR!

    2.6K20编辑于 2022-05-10
  • 来自专栏向治洪

    Lerna入门与实战

    二、快速上手 2.1 安装lerna 使用lerna之前,需要全局安装lerna,安装的命令如下: yarn global add lerna #or npm install lerna - g 如果是在已经存在的项目中安装lerna,使用下面的方式: lerna bootstap 2.2 初始化项目 使用lerna 初始化项目的方式和使用npm方式类似。 lerna list:查看当前包名列表。 lerna link:将所有相互依赖的包符号链接在一起。 lerna exec:在每个包中执行任意命令。 $ lerna publish lerna notice cli v3.22.1 lerna info current version 0.0.2 lerna info Looking for changed > lerna publish lerna notice cli v3.22.1 lerna info current version 0.0.3 lerna notice Current HEAD

    1.8K20编辑于 2022-12-09
  • 来自专栏黯羽轻扬

    lerna入门指南

    一直感觉异常麻烦,又说不出来哪里不对,原来是源码组织方式带来的困扰 三.lerna试玩 // 安装 npm install lerna -g git init hoho-lerna && cd hoho-lerna // 初始化目录结构 lerna init 得到如下结构: hoho-lerna/ packages/ lerna.json package.json 创建module: mkdir packages /hoho-lerna-core && cd packages/hoho-lerna-core npm init 这样最终会得到一堆package: packages/ hoho-lerna-core Yes lerna info publish Publishing packages to npm... lerna info published hoho-lerna-module-b lerna info published hoho-lerna-core lerna info published hoho-lerna-module-a lerna info git Pushing tags...

    1.8K50发布于 2019-06-12
  • 来自专栏方球

    lerna 从0到1

    lerna 4.0.0 DEMO 目录 root/ lerna.json lerna 配置 package.json packages/ npm包集合 pkg-ts npm 子包 pkg-es6 安装 lerna 将为我们生成基础的项目目录和配置. lerna init ? // 方式二 直接配置lerna.json // lerna.json { ... , 例如我们之前为使用lerna 管理的独立npm包, 导入到lerna项目包集合后, 可以使用改目录导入相关 git 记录等 lerna import <包地址> 参数: --faltten lerna 造成git add 发生冲突 参考文档 深入 lerna 发包机制 —— lerna publish-技术圈 @lerna/version(翻译) @lerna/publish(翻译) 深入 lerna

    1.7K30发布于 2021-06-29
  • 来自专栏采云轩

    Lerna 运行流程剖析

    这是第 137 篇不掺水的原创 Lerna 运行流程剖析 https://www.zoo.team/article/lerna-js 前言 随着前端组件、包库等工程体系发展,业务组件和工具库关系越来越复杂 多业务组件、互相依赖、无法复用 发包流程复杂、版本管理痛苦 此刻就有了 lerna.js 简介 “Lerna (lerna) is a tool that optimizes the workflow 原理剖析 我们先 Github 克隆源码(https://github.com/lerna/lerna) 观察一下目录 指令的初始化流程 脚手架入口文件位于 /core/lerna/cli.js “ core/lerna/cli.js 入口 #! */ // 导入 @lerna/cli 文件 const cli = require("@lerna/cli"); // .....

    1.1K10编辑于 2022-03-29
  • 来自专栏前端进阶实战

    基于 lerna 实现 Monorepo 项目管理

    2.1 初始化项目结构 首先就是得全局安装 Lerna: yarn global add lerna // or npm install lerna -g 然后就是新建项目目录,并使用 Lerna 初始化一个基本结构 mkdir dyboy-lerna-project cd dyboy-lerna-project/ lerna init --independent 如此之后,便得到了如下的一个文件目录结构: . ├── lerna.json // lerna 的配置文件 ├── package.json // 当前项目的描述文件 └── packages/ // 存放所有包的文件夹 Lerna 初始化项目的时候 2.2 Lerna + Yarn Workspaces Lerna 默认会使用 NPM 作为包管理器,但使用 yarn 作为 Lerna 的默认包管理器是更推荐的方式。 Lerna 方案补齐短板,如虎添翼。

    2K20编辑于 2022-07-29
  • 来自专栏WebJ2EE

    NodeJS:Lerna —— Monorepo 的最佳实践

    Lerna 是啥? 图:基于 Lerna 的 Monorepo项目结构 ? 图文无关 ? 下面给大家展示一个 基于 Lerna 的 Monorepo 项目 完整的构建、开发、发布流程 深刻体会它的优势 3.1. 全局安装 lerna; npm install -g lerna 03. 初始化 lerna 项目; lerna init 图:lerna init 命令 ? 构建各子项目间的依赖关系; lerna bootstrap 图:lerna bootstrap 命令 ? 图:lerna bootstrap 连接后效果 ? 3.3. 《syncpack 小工具》: https://github.com/JamieMason/syncpack Lerna git 仓库: https://github.com/lerna/lerna

    5.8K31发布于 2019-07-19
  • 来自专栏leon的专栏

    使用Yarn与Lerna管理monorepo

    Lerna 安装依赖的方式 Lerna 安装依赖的方式,是使用命令lerna bootstrap。 Yarn workspace 与 Lerna 结合 结合的方式 配置 lerna.json { ... Lerna 负责版本的发布工作,对 package 相互之间的依赖,做好版本管理。 自动设置软链接,方便调试Yarn 的 workspace 会自动对 package 的引用,设置 symlink 所有 package 使用同一个 yarn.lock,更少造成冲突且易于审查 使用 首次安装依赖 lerna

    1.7K10编辑于 2022-05-11
  • 来自专栏亦枫的大佬之路

    多包依赖管理--Lerna

    Lerna很好的管理多个包以及他们的依赖关系。 1.工作模式: Lerna允许我们使用两种模式来管理我们的模块:Fixed 模式和Independent模式。 5.初始化项目: 首先,先建一个新项目,接着我们全局安装lerna,并执行初始化操作,再上传到git仓库上: npm intall lerna -g mkdir lerna-demo && cd $_ 8.Lerna指令 安装依赖 lerna bootstrap 查看本地包列表 lerna list 删除安装依赖 lerna clean 建立软链 lerna link 发布安装包 lerna publish 创建一次lerna工作流 从lerna boostrap(依赖包安装) --> 开发模块 --> git commit --> lerna changed(查看包变化) --> lerna publish lerna bootstrap // 安装依赖包 lerna list // 本地依赖包 lerna changed // 待发布包列表 lerna publish // 发布 9

    5.3K20发布于 2020-10-27
  • 来自专栏方球

    lerna 包管理器

    多包管理器 安装 npm i lerna -g 命令 init 项目初始化 lerna init // 默认初始化 lerna init --independent // 使用独立版本模式 lerna init --exact init 生成目录 packages/ // 默认包目录 package.json lerna.json // lerna 配置 bootstrap 为所有包安装依赖 lerna bootstrap add 添加依赖, 类似 npm install lerna add <package> // 为所有包安装依赖 lerna add <package> --scope // 执行所有包内的 test 命令 lerna run --scope=root dev // 只执行root包内的 dev 命令 create 创建新包 lerna create pk-name 的基础使用 使用lerna优雅的管理多个package

    1.7K10发布于 2020-10-27
  • 来自专栏前端自习课

    【Web技术】259- Lerna包管理

    认识lerna 导读:本章节主要讲解Lerna是什么,Lerna有什么用,如何使用Lerna进行npm包管理,大厂的Lerna版本管理策略是怎么做的,Lerna是如何实现本地包依赖管理以及底层原理是什么 lerna是如何实现内部文件软链的?是npm link么? lerna在哪些场景下使用会比较优势? lerna如何安装依赖,如何更新,如何发布?lerna如何提升安装性能? Lerna配置 lerna 环境搭建 npm i lerna -g // 全局安装lerna lerna init // 初始化lerna目录 lerna.json基础配置 Lerna基本操作 本小节会介绍lerna基本操作命令,如何创建一次lerna的工作流。lerna的常用命令:list, bootstrap, clean, changed, publish。 如何安装依赖 lerna bootstrap 如何查看本地包列表 lerna list 如何删除安装依赖 lerna clean 如何建立软链 lerna link 如何发布安装包 lerna publish

    1.2K30发布于 2019-07-25
  • 来自专栏小鑫同学编程历险记

    lerna-lite 轻量化 monorepo 管理利器

    lerna-lite 介绍 lerna-lite 是用来管理和发布同一仓库多 JavaScript/TypeScript 包的一款工具,与 lerna 相比 lerna-lite 具有更轻量化和模块化的特点 ,同时 lerna-lite 也是 lerna 的一个有限子集。 快速开始: 首先要将@lerna-lite/cli作为开发依赖安装到项目中: # 创建一个空项目 mkdir lerna-repo cd lerna-repo npm init -y # 安装 cli 依赖并执行 init 命令 npm install -D @lerna-lite/cli node_modules/.bin/lerna init 执行 init 命令初始化工作空间,得到一个 lerna.json lerna-lite notice cli v3.3.3 lerna-lite info current project version 0.0.0 lerna-lite info Assuming

    90210编辑于 2024-04-24
  • 来自专栏前端资源

    Lerna的使用及报错问题分析解决

    Lerna 的优点: 高效执行任务:Lerna 可以以最高效、正确的顺序并行运行任意数量的项目命令,还可以在多台机器上分布执行。 Lerna 的使用: 以下是使用 Lerna 的步骤: 初始化项目 Lerna:在项目根目录中运行以下命令: npx lerna init 会创建一个名为 lerna.json 的配置文件。 运行 Lerna 命令:现在你可以运行其他 Lerna 命令,例如安装依赖、发布等。 常见问题: lerna publish 报错: lerna notice cli v3.22.1 lerna ERR! 这是因为没有初始化 Lerna,和上面讲到的一样,执行命令: npx lerna init lerna init 报错: lerna notice cli v8.1.2 lerna ERR!

    73210编辑于 2024-03-29
  • 来自专栏各类技术文章~

    lerna + dumi + eslint多包管理实践

    在没使用 lerna 时, 我们不同库的组织形式可能如下: 使用 lerna 之后的库组织结构: 以上两个是我做的简图, 基本可以对比出使用 lerna 前后的差异, lerna 的作用是把多个项目或模块拆分为多个 publish 依赖git检测文件改动,自动发布,管理版本号 lerna create 创建一个 lerna 管理的package包 lerna clean 删除所有包下面的node_modules目录 当然 lerna 还提供了很多有用的命令, 大家感兴趣可以在官网学习. 接下来我就带大家从零搭建一个使用 lerna 管理的多包项目. 上图是我们包的依赖关系, 首先我们需要全局安装一下 lerna. 项目初始化 $ git init best-cps && cd best-cps $ lerna init 复制代码 创建三个 package $ lerna create LibA && lerna

    55300发布于 2021-10-05
  • 来自专栏趣谈前端

    lerna + dumi + eslint多包管理实践

    如果大家想看实际的案例, 可以参考: best-cps | 基于lerna + dumi搭建的多包管理实践 大型项目中如何管理组织依赖包及其版本问题 这个问题主要用我上面的提到的 lerna 工具来解决 在没使用 lerna 时, 我们不同库的组织形式可能如下: 使用 lerna 之后的库组织结构: 以上两个是我做的简图, 基本可以对比出使用 lerna 前后的差异, lerna 的作用是把多个项目或模块拆分为多个 publish 依赖git检测文件改动,自动发布,管理版本号 lerna create 创建一个 lerna 管理的package包 lerna clean 删除所有包下面的node_modules目录 当然 lerna 还提供了很多有用的命令, 大家感兴趣可以在官网学习. 接下来我就带大家从零搭建一个使用 lerna 管理的多包项目. 项目初始化 $ git init best-cps && cd best-cps $ lerna init 创建三个 package $ lerna create LibA && lerna create

    1.4K20发布于 2021-10-14
  • 来自专栏前端资源

    Lerna的使用及报错问题分析解决

    Lerna 的优点: 高效执行任务:Lerna 可以以最高效、正确的顺序并行运行任意数量的项目命令,还可以在多台机器上分布执行。 Lerna 的使用: 以下是使用 Lerna 的步骤: 初始化项目 Lerna:在项目根目录中运行以下命令: npx lerna init 会创建一个名为 lerna.json 的配置文件。 运行 Lerna 命令:现在你可以运行其他 Lerna 命令,例如安装依赖、发布等。 常见问题: lerna publish 报错: lerna notice cli v3.22.1 lerna ERR! 这是因为没有初始化 Lerna,和上面讲到的一样,执行命令: npx lerna init lerna init 报错: lerna notice cli v8.1.2 lerna ERR!

    1.1K10编辑于 2024-03-28
  • 来自专栏杰的记事本

    lerna前端代码管理入门及最佳实践

    什么是lerna?为什么要使用lerna? lerna到底是什么呢?lerna官网上是这样描述的。 npm config ls lerna 你需要全局安装lerna工具。 npm install lerna -g 初始化一个lerna工程 在这个例子中,我将在我本地d:/ 根目录下初始化一个lerna工程。 在d:/ 下创建一个空的文件夹,命名为lerna-demo mkdir lerna-demo 初始化 通过cmd进入相关目录,进行初始化 cd d:/lerna-demo lerna init 执行成功后 lerna最佳实践 为了能够使lerna发挥最大的作用,根据这段时间使用lerna 的经验,总结出一个最佳实践。下面是一些特性。

    1.2K10发布于 2019-09-04
  • 来自专栏QQ音乐技术团队的专栏

    基于 Yarn WorkSpace + Lerna + OrangeCI 搭建 Typescript Monorepo 项目实践

    其实了解 Lerna 用法的同学都知道,这里只用 Lerna 的命令lerna bootstrap可以完美的解决这个问题,但在这里,我使用 Yarn workSpace 代替 npm,除了保证 package Yarn workspace 是 Lerna 利用的底层机制,而且 Lerna 支持与 Yarn 协同工作。 项目初始化 lerna 初始化项目(采用 independent 管理模式) lerna init --independent 新增 packages lerna create @tencent/pkg1lerna 我们可以通过在 lerna 发布之前调用 lerna run build 来实现这一点,这将运行每个 package 的build脚本。 或者我们可以使用 lerna 发布命令lerna publish。

    4.4K42发布于 2020-07-13
领券