问题标签 [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 投票
0 回答
806 浏览

javascript - 如何在 Lerna monorepo 上运行 babel-node?

我正在使用 Lerna 构建我的第一个 monorepo。

我的 lerna.json:

lerna package.json 是这样的:

我的项目有以下package.json:

我的问题是运行服务器应用程序,发出以下命令之一:

我认为这是因为所有包现在都驻留在包根/node_modules 中。

任何想法如何解决这个问题?

0 投票
1 回答
2560 浏览

javascript - Babel 预设未加载到 monorepo 项目中

我有一个使用 Lerna 的 monorepo,其结构如下:

所有软件包都使用Babel并在安装 3 个项目后将所有库yarn复制到. 因此,项目上没有安装,只是在 monorepo 存储库中。@babelmonorepo/node_modulesbabel

我的 lerna.json:

lerna 根package.json

我的项目有以下package.json:

当我启动服务器时,它没有在本地找到加载程序。我认为这是因为所有 babel 都安装在monorepo/node_modules

我该如何解决?如何配置服务器以查看 monorepo babel 并解决该错误?

0 投票
1 回答
218 浏览

node.js - 如何在两个包中使用猫鼬?

我正在使用 Lerna 来处理我的仓库中的多个包。

基本上,我有一个@pkg/server我的 Node/Express 应用程序所在的包和@pkg/model我的猫鼬模式所在的另一个包。

我的 REST API 正在使用一些模型,带有import ModelA from '@pkg/model'.

问题是这两个包都mongoose具有依赖项(@pkg/server使用 mongoose 建立与 mongoDB 服务器的连接,并@pkg/model使用 mongoose 定义模式和模型)。

在我的服务器中,每当我尝试调用时ModelA.find(...),它都会永远挂起。从猫鼬文档看来,我必须将模型注册到猫鼬连接而不是猫鼬对象本身。

我的第一个猜测是将服务器创建的连接对象传递给@pkg/model,然后将模型注册到这个连接对象。

我的问题是,这是正确的做法吗?或者有没有办法做类似 (in the @pkg/server)的事情mongoose.loadSchemas(@pkg/model)

0 投票
0 回答
428 浏览

javascript - babel-node 没有转译 lerna 导入的代码

我将 lerna 与一些软件包一起使用:

server是我当前的项目,authenticator并且graphql是导入的模块。

这是我的server package.json

我的src/server.js文件:

我的graphql/src/index.js:

我的authenticator/src/index.js

跑步时

无法理解为什么 babel-node 转译graphql包而不转译authenticator包。

这是 babel-node 中的错误吗?我在这里想念什么?

PS:Laravel 内部使用符号链接到模块。我正在使用 Windows 10。

0 投票
1 回答
1398 浏览

versioning - 使用 lerna monorepo,如何引用共享包的不同版本?

lerna 和 monorepo 的新手,我的理解是 lerna,我们将所有共享包和所有消费者包放在一个 repo 中。然后在“lerna bootstrap”之后,consumer1 和 consumer2 都会有一个到 shared1 的本地链接(符号链接)。因此,每当我在 shared1 中进行更改时,consumer1 和 consumer2 都会受到影响。

有没有办法让consumer1 和consumer2 指向不同版本的shared1?这样当我在 shared1 中进行更改时,只有 consumer1 受到影响,而 consumer2 不受影响。

0 投票
0 回答
185 浏览

javascript - Lerna、常规提交和长期支持版本

我们在 monorepo 中有许多包,由 Lerna 管理并具有强制性的常规提交。虽然每个人都在主/最新版本的 HEAD 的同一页面上,但一切都很好。但是我们现在需要创建长期支持版本,即我们不断向后移植修复的主要版本。

这应该如何与 Lerna 一起工作?例如

  1. 假设我有a@1.0.0b@1.0.0并且b取决于a
  2. 由于版本冲突,我对a进行了重大更改并发布给我a@2.0.0b@1.0.1 。
  3. 我发现 a 中的一个错误,master 上修复它并发布它创建a@2.0.1b@1.0.2
  4. 我从上面的第 1 点创建一个分支并向后移植修复程序(出于长期支持的目的)。当我正确发布它时,它会尝试创建a@1.0.1但在尝试创建b@1.0.1时失败,因为该版本已经存在。

有任何想法吗?

0 投票
2 回答
1236 浏览

javascript - 有没有办法用 Lerna “刷新”一个导入的存储库?

我参与了一个项目,该项目有两个独立的存储库,我们很快就会将它们合并到一个 monorepo 中。Lerna 的import命令在这方面会很有帮助,所以我们会保留项目的历史记录。

但是,目前原始存储库中有一些正在进行中的功能分支,当我们迁移到 monorepo 时可能还没有准备好。我的理解是lerna import只会从源代码库中提取当前签出的分支 - 对吗?

所以我想知道是否有办法再次导入,但只提取自上次导入以来所做的提交?

这样,在功能分支上工作的团队develop一旦准备好就可以合并到分支中,我们可以将其带到 monorepo 中。

或者,是否有应对这种情况的策略?

还是我必须等到所有内容都合并后develop才能执行lerna import

谢谢!

0 投票
0 回答
160 浏览

react-native - 使用 expo 构建反应本机应用程序时出错

我正在使用 react-native、expo 和 lerna 构建第一个移动项目。但我对 lerna 有疑问。当我输入: yarn install all packages。我的问题是 lerna 将移动包中的所有模块包推送到外部 node_modules 文件夹,以便运行 react native 的脚本在移动包中不可用。我的问题是 lerna 有什么解决方案可以识别这些模块超出移动范围。

这是我的文件夹结构

| 我的项目/
| ---- 节点模块/
| -------- 反应原生/
| -------- 勒纳/
| -------- 世博会/
| ---- 包.json
| ---- lerna.json
| ---- 包/
| -------- 手机/
| ------------ node_modules/
| ---------------- 斌/
| ------------------- 反应原生
| -------------------反应本机.cmd
| ------------ package.json

0 投票
2 回答
4159 浏览

node.js - 詹金斯上的 lerna 发布“git 远程更新”失败“无法从远程存储库读取。”

我正在尝试设置在所有测试通过后发布lernajenkins我有命令正在运行,但它失败了。

我找不到任何有关如何使其工作的文档。我需要这个命令才能访问将 lerna 标签以及更新的版本号推送到 master 分支,并且我还需要 Jenkins 不会陷入无限循环。

我的第一个问题是这样的:

我通过这样做解决了这个问题: Jenkins Git plugin detached HEAD

这是我将所有内容设置为:

在此处输入图像描述

现在我遇到了这个问题:

我怎样才能lerna publish在詹金斯工作?

0 投票
1 回答
1429 浏览

node.js - lerna 致命:模棱两可的参数 'origin/heads/origin/master...heads/origin/master':未知的修订版或路径不在工作树中

这是我关于如何让 lerna 在 Jenkins 中运行的一系列问题的一部分。

以前的问题:

詹金斯上的 lerna 发布“git 远程更新”失败“无法从远程存储库读取。”