问题标签 [lerna]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3096 浏览

lerna - 将 Lerna 与 Yarn 工作区一起使用有什么优势吗?

我们正在迁移我们的 monorepo 以使用Lerna

Lerna 支持 NPM 和 Yarn,此外还允许配置与 Yarn 工作区一起使用。我不清楚带有 Yarn 工作空间的 Lerna 是否比带有 NPM 的 Lerna 有任何明显的优势。许多帖子声称 Lerna 与开箱即用的 Yarn 工作区或多或少做相同的事情。

与带有 NPM 的 Lerna 相比,使用带有 Yarn 工作区的 Lerna 有什么优势吗?

0 投票
2 回答
1904 浏览

java - 类似 Lerna 的工具/在 Java 中处理 monorepos

我来自 Web 开发背景,经常参与使用 Lerna 处理 JavaScript 中来自同一存储库的多个包的项目。就目前而言,我需要在 Java 中重新创建其中的一些项目,并且需要知道如何在不使用 Lerna 和使用 Gradle 作为我们的构建工具的情况下做到这一点。

我的问题是关于如何在 Java 中处理包含多个包的大型存储库:

编辑:改写问题以符合指南。将下面的旧问题保留在旧答案中更有意义。

  1. 我是否需要像 Lerna 对 JavaScript 那样使用单独的工具来帮助管理 Java 中的包,或者是否可以使用 Maven 或 Gradle 等构建工具自行处理。
  2. 如果两个团队使用不同的构建工具,是否更容易因为他们的不同贡献而导致问题?
  3. 首先在一个存储库中维护多个 Java 包是否可行?


  1. 是否有任何包或插件已经在 J​​ava 中执行此操作?(我找不到任何东西。)
  2. 解决方案是否可能会在使用不同构建工具进行各种贡献的团队之间引起问题?(例如:Maven 和 Gradle)
  3. 首先在一个存储库中维护多个 Java 包是否可行?
  4. 问这个问题时,有什么我根本无法理解的吗?我是否朝着错误的方向寻找解决方案?
0 投票
1 回答
3122 浏览

babeljs - 即使在排除块中指定忽略包(lerna)后,babel-loader 也不会在 node_modules 中转译包

所以我正在lerna为我们的反应应用程序尝试 monorepo 设计。这个想法是创建一个 repo,它将所有的 react 项目作为lerna包以及一些在应用程序之间共享的通用模块/组件。

现在所有这些通用模块/组件都是 es6 模块。没有被转译。因为公共模块也在不断发展。如果我们构建/转换它们,我确信在那之后反应 HMR 将不起作用(一个疯狂的猜测)。以下是我的目录结构

package.json lerna.json |--packages |--common |--react-app |--constants |--utilities

commontable,accordion包含作为默认 es6 模块导出的常见反应元素等。

react-app导入commondependency. react-app有 webpack 构建配置集。

现在当我将common模块导入我的react-appbabeltransform失败并出现此错误

这意味着babel-loader无法解析和转译node_nodules文件夹中的内容,这是有道理的,因为所有依赖项都应该已经转译。但不总是。如果您管理本地依赖项,则无法始终构建它们(这就是我的想法)

现在我在网上找到了一些解决方案,使 1在排除正则表达式中bable-loader不排除node_modules或忽略@mypackage。但在我的情况下没有任何效果。

这是我到目前为止所尝试的。

  1. exlucde: /node_modules/babel-loader=>中删除不工作
  2. 使用require.resolve('babel-loader')=> 不工作
  3. 添加resolve.symlinks= false.
  4. 添加resolve.modules='node_modules'path.resove(__dirname,'node_modules')=> 不工作
  5. babel-loader添加要包含的包路径include: [srcPath, lernaPackagesPath]

似乎没有任何效果。有什么我想念的吗? 是我的 git test repo 的链接。

0 投票
1 回答
1085 浏览

javascript - Lerna 和 Jenkins 构建策略

首先抱歉,如果这是问题的错误地方!

我与之合作的一个团队最近采用了lerna作为在一个存储库中管理多个 javascript / node 包的工具。然而,我们正在努力寻找一种使用 Jenkins 构建这些多个包的好方法。当我们将代码推送到远程 (git) 时,会触发一个 webhook,导致 Jenkins 开始构建代码(典型过程)。即使只更改了一个包,这也会触发存储库中所有包的作业。

我们目前的想法是在 webhook 的中间人,并基于调用 GitHub API 选择要构建的包或在 Jenkins 中找到一些东西,让我们进行基于路径的检查(为此苦苦挣扎)。

我进行了很好的搜索,但还没有真正找到任何可行的方法。任何建议将不胜感激。

0 投票
1 回答
1220 浏览

reactjs - 如何为 React SSR 和 API 构建 monorepo

我正在尝试了解为 NodeJS/React 项目构建 monorepos 的最佳实践。

我需要:

  1. React SPA 与服务器端渲染。

  2. 后端有 Express、MongoDB、mongoose 模块等。

  3. 一些实用功能、助手、枚举等的共享(公共)模块;

用 monorepo 构建这种架构的优雅方法是什么(我将使用 Lerna)?

  • 我应该分离 API 和 SSR EXpress 服务器吗?
  • 如果是,我应该将 React 前端代码与 SSR 服务器分开吗?
  • 如何配置 webpack 开发环境,所以开发过程中的其他模块总是会得到“共享”模块的转译(Babel)版本(这个问题有点超出范围,可能解决方案很简单)

我知道答案主要是“视情况而定”,但我需要通用的方法,它适用于许多情况,即使它会有点过度设计。

谢谢

0 投票
3 回答
3741 浏览

jestjs - 运行特定的笑话项目

我正在用 jest 建立一个 lerna monorepo,我正在使用 jest 的项目,如下所示:projects: ['<rootDir>/packages/*'].

运行测试按预期工作,但是,我不确定如何运行特定项目?说我有:

目前jest使用它们的特定配置在两个包中运行测试,但是,我不确定如何告诉 jest 只在其中一个包中运行测试?

0 投票
1 回答
1157 浏览

npm - Yarn - 工作区 - Lerna - 我无法使用工作区功能添加我的包

我有这个文件夹树:

我的 editor_implementation/package.json 有以下内容:

我的根文件夹 my_project_tree/package.json 具有以下内容:

我在根级别的 lerna.json 具有以下内容:

当我从根运行时:

  • yarn 工作区包/editor_implementation 添加°一些包°
  • yarn workspace packages/* 添加°一些包°
  • lerna 添加°一些包°

所有命令都失败并带有可抽象为的消息:

知道包...

未找到包 {}...

我无法弄清楚出了什么问题,因为在我看来,我已经遵循了所有要求,如果有人有任何提示,那就太好了。

0 投票
1 回答
2290 浏览

javascript - Lerna add 不会添加内部依赖

我正在使用 lerna 来管理 React 组件库。我的一些组件既有来自 npm 注册表的外部依赖项,也有内部依赖项,即存储库中的兄弟包。

目录结构

我正在尝试使用该lerna add命令将内部依赖项添加到另一个包。具体来说,我想将 Utils、Typography、Link 添加到 HRWrapper。

要添加我运行的实用程序

并收到此错误

要安装 Typography,我运行

并收到此错误

我不确定尝试安装 Utils 时第一个错误是什么意思。但是,由于某种原因,当我尝试添加 Typography 时,它会在 npm 注册表中搜索它。

这是我的 lerna.json

我究竟做错了什么?

0 投票
0 回答
78 浏览

javascript - 如何在本地环境的 docker 中运行 MEAN 堆栈?

我是 MEAN 项目的新手,我有一个新项目已成功克隆,需要在本地运行以进行开发。我不知道从哪里开始。

它有 docker、lerna、yarn 等。我怎样才能让它在我的本地开发机器上工作?我有 PC 和 Mac 资源以及 Azure 和 AWS (Cloud9) 等资源。

更新

我必须执行以下操作才能启动并运行它。现在,这需要几分钟才能运行。我现在的问题是,每次我做出改变(我的意思是 npm run dev 部分)时,我是否必须停止并启动这个过程?

0 投票
1 回答
240 浏览

npm - 为什么 Lerna 在根项目中创建大量 .tgz 文件?

我正在使用 Lerna,当我使用时 lerna publish,在我的项目的根目录中创建了很多 .tgz 文件。如何保存要创建的这些文件?感谢您的任何提示。

这是我的项目根目录:

28/09/2018 16:25 99 847 hoco_editor-alignment_plugin-1.1.0.tgz 28/09/2018 16:58 100 183 hoco_editor-alignment_plugin-1.2.0.tgz 28/09/2018 16:25
102 772 hoco_editor- bold_plugin-1.1.0.tgz 28/09/2018 16:58
102 875 hoco_editor-bold_plugin-1.2.0.tgz 28/09/2018 16:25
1 299 hoco_editor-embed_plugin-1.1.0.tgz 28/09/2018 16:58
1 507 hoco_editor-embed_plugin-1.2.0.tgz 28/09/2018 16:25
4 072 hoco_editor-font_family_plugin-1.1.0.tgz 28/09/2018 16:58
4 257 hoco_editor-font_family_plugin-1.2.0 .tgz 28/09/2018 16:25
4 281 hoco_editor-font_size_plugin-1.1.0.tgz 28/09/2018 16:58
4 465 hoco_editor-font_size_plugin-1.2.0.tgz 28/09/2018 16:25
2 128 hoco_editor-image_plugin-1.1.0.tgz 28/09/2018 16:58
2 317 hoco_editor-image_plugin-1.2.0.tgz 28/09/2018 16:25
2 221 hoco_editor-italic_plugin-1.1.0.tgz 28 /09/2018 16:58
2 412 hoco_editor-italic_plugin-1.2.0.tgz 28/09/2018 16:25
1 332 hoco_editor-link_plugin-1.1.0.tgz 28/09/2018 16:58
1 537 hoco_editor-link_plugin -1.2.0.tgz 28/09/2018 16:25
653 hoco_editor-list_plugin-1.1.0.tgz 28/09/2018 16:58
866 hoco_editor-list_plugin-1.2.0.tgz 28/09/2018 16:25
657 hoco_editor-toggle_readonly-1.1.0.tgz 28/09/2018 16:58
873 hoco_editor-toggle_readonly-1.2.0.tgz 28/09/2018 16:25
5 146 hoco_editor-ui-1.1.0.tgz 28/09 /2018 16:58 5 332 hoco_editor-ui-1.2.0.tgz