问题标签 [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.
javascript - 如何在 Lerna monorepo 上运行 babel-node?
我正在使用 Lerna 构建我的第一个 monorepo。
我的 lerna.json:
lerna package.json 是这样的:
我的项目有以下package.json:
我的问题是运行服务器应用程序,发出以下命令之一:
我认为这是因为所有包现在都驻留在包根/node_modules 中。
任何想法如何解决这个问题?
javascript - Babel 预设未加载到 monorepo 项目中
我有一个使用 Lerna 的 monorepo,其结构如下:
所有软件包都使用Babel
并在安装 3 个项目后将所有库yarn
复制到. 因此,项目上没有安装,只是在 monorepo 存储库中。@babel
monorepo/node_modules
babel
我的 lerna.json:
lerna 根package.json
:
我的项目有以下package.json:
当我启动服务器时,它没有在本地找到加载程序。我认为这是因为所有 babel 都安装在monorepo/node_modules
:
我该如何解决?如何配置服务器以查看 monorepo babel 并解决该错误?
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)
?
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。
versioning - 使用 lerna monorepo,如何引用共享包的不同版本?
lerna 和 monorepo 的新手,我的理解是 lerna,我们将所有共享包和所有消费者包放在一个 repo 中。然后在“lerna bootstrap”之后,consumer1 和 consumer2 都会有一个到 shared1 的本地链接(符号链接)。因此,每当我在 shared1 中进行更改时,consumer1 和 consumer2 都会受到影响。
有没有办法让consumer1 和consumer2 指向不同版本的shared1?这样当我在 shared1 中进行更改时,只有 consumer1 受到影响,而 consumer2 不受影响。
javascript - Lerna、常规提交和长期支持版本
我们在 monorepo 中有许多包,由 Lerna 管理并具有强制性的常规提交。虽然每个人都在主/最新版本的 HEAD 的同一页面上,但一切都很好。但是我们现在需要创建长期支持版本,即我们不断向后移植修复的主要版本。
这应该如何与 Lerna 一起工作?例如
- 假设我有a@1.0.0和b@1.0.0并且b取决于a。
- 由于版本冲突,我对a进行了重大更改并发布给我a@2.0.0和b@1.0.1 。
- 我发现 a 中的一个错误,在master 上修复它并发布它创建a@2.0.1和b@1.0.2。
- 我从上面的第 1 点创建一个分支并向后移植修复程序(出于长期支持的目的)。当我正确发布它时,它会尝试创建a@1.0.1但在尝试创建b@1.0.1时失败,因为该版本已经存在。
有任何想法吗?
javascript - 有没有办法用 Lerna “刷新”一个导入的存储库?
我参与了一个项目,该项目有两个独立的存储库,我们很快就会将它们合并到一个 monorepo 中。Lerna 的import
命令在这方面会很有帮助,所以我们会保留项目的历史记录。
但是,目前原始存储库中有一些正在进行中的功能分支,当我们迁移到 monorepo 时可能还没有准备好。我的理解是lerna import
只会从源代码库中提取当前签出的分支 - 对吗?
所以我想知道是否有办法再次导入,但只提取自上次导入以来所做的提交?
这样,在功能分支上工作的团队develop
一旦准备好就可以合并到分支中,我们可以将其带到 monorepo 中。
或者,是否有应对这种情况的策略?
还是我必须等到所有内容都合并后develop
才能执行lerna import
?
谢谢!
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
node.js - 詹金斯上的 lerna 发布“git 远程更新”失败“无法从远程存储库读取。”
我正在尝试设置在所有测试通过后发布lerna
。jenkins
我有命令正在运行,但它失败了。
我找不到任何有关如何使其工作的文档。我需要这个命令才能访问将 lerna 标签以及更新的版本号推送到 master 分支,并且我还需要 Jenkins 不会陷入无限循环。
我的第一个问题是这样的:
我通过这样做解决了这个问题: Jenkins Git plugin detached HEAD
这是我将所有内容设置为:
现在我遇到了这个问题:
我怎样才能lerna publish
在詹金斯工作?