问题标签 [yarn-workspaces]

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 回答
192 浏览

yarnpkg - Yarn monorepo:在一些包上运行 Yarn 脚本,但不是全部

我正在尝试在我的一些工作区包中运行测试,但不是全部

从monorepo根我想运行类似的东西

或者

但这些命令都无效。

任何人都可以提出解决方法吗?

0 投票
2 回答
582 浏览

lerna - lerna 在 yarn 工作区的优势,为什么要使用 lerna

我正在尝试设置一个单声道回购并遇到了 lerna+yarn。我的问题是,我使用 lerna 获得的实际优势是什么。我只能使用纱线工作区并具有相同的功能。我遇到了以下问题将 Lerna 与 Yarn 工作区一起使用有什么好处吗?但是这里没有关于使用 lerna 的具体优势的具体答案。

0 投票
2 回答
1675 浏览

node.js - 如何将一个应用程序从具有依赖关系的大型 monorepo 部署到同一个 repo 中的包到谷歌应用程序引擎?

我有一个带有多个应用程序和包以及相互依赖关系的大型 node.js monorepo。这一切都由纱线工作区和一点点 lerna 管理。一切对我来说都很好,但是我在尝试将这个 monorepo 中的一个应用程序部署到谷歌应用程序引擎时遇到了麻烦。

主要问题是应用程序引擎想要安装仅位于本地且不在 npm 上的包,它会引发错误。

我已经搜索了谷歌云文档,但没有找到任何我可以用来指定自定义节点包或类似内容的东西。

有没有办法在不将本地包发布到 npm 的情况下进行这样的部署?

我要部署的应用程序的基本结构如下所示:

0 投票
2 回答
6306 浏览

yarnpkg - 如何安装没有符号链接的纱线工作区包?

我有一个看起来像这样的纱线工作区项目:

正如你所看到的,我有一个server.Dockerfile,它构建了一个服务器的镜像,我可以将它推送到不同的托管服务提供商,比如 Heroku 或 AWS。

我复制packagespackage.json进入这个容器:

然后我只安装server包的依赖项:

现在所有依赖项都在node_modules文件夹中,接下来我想删除packages文件夹以从 docker 映像中删除任何不必要的代码(例如客户端代码):

这样做的问题是node_modules文件夹内的所有纱线工作区包只是文件夹的符号链接packages......所以我无法删除该文件夹。

  • 如何yarn install制作纱线工作区包的副本而不是创建符号链接?

  • 或者,有没有另一种方法来删除所有未使用的代码(例如客户端代码),这样我的 docker 图像就不会臃肿?

0 投票
1 回答
2727 浏览

typescript - 运行 Docker-Compose 时找不到 Monorepo 共享包

我有一个带有lerna和 yarn工作区的 monorepo 。一切都用打字稿编写并编译成javascript。

但是在通过docker-compose.

我创建了一个模仿行为的小型仓库:https ://github.com/skatestyle/stackoverflow-monorepo-dependencies 。


基本上有一个@root/common和一个@root/server包。server导入common. _ 运行时一切正常node packages/server/lib/index.js。(请注意,您需要在yarn bootstrap开始yarn build之前运行

但是当通过 运行我的 docker-compose 文件时docker-compose up --build,我收到以下错误:

是的,我需要使用docker-compose,因为我的真实项目有更多的服务器在运行。

错误可能在于我的Dockerfileor docker-compose.yml,但我找不到它。

提前感谢您的每一个帮助!

0 投票
4 回答
13777 浏览

yarnpkg - 工作空间仍在吊装的 nohoist

在我的 Monorepo 中,我有一个包,我希望在它的 node_modules 中包含所有依赖项。

但无论我做什么,它的 node_modules 仍然是空的。

因此,出于我的问题的目的,我能够通过以下设置重现该问题

我为此创建了一个仓库

主包.json

B/package.json好像

现在,当我yarn在项目的根目录中运行时,所有依赖项都安装在根目录中node_modules

纱线版本:1.16.0 节点:12.4.0

有什么建议可能是什么问题?

0 投票
3 回答
1832 浏览

node.js - 升级根目录下的 yarn 不会升级 Workspace 依赖

在根目录中运行yarn upgrade时,它只升级根目录的package.jsonand yarn.lock,但我需要升级workspace dependencied.

有没有办法做到这一点,除了使用yarn upgrade-interactive

0 投票
2 回答
13696 浏览

yarnpkg - 如何使用 Yarn 定位单个工作区?

我有这样设置的工作区

在我的包目录中,我有一个文件夹common,其中包括自己的文件夹package.json等。

当我执行yarn workspaces run build它时,它会触发所有工作区的构建脚本。但是,如果我尝试使用yarn workspace命令来定位一个特定的工作区,就像yarn workspace common build我不断收到错误一样:

错误未知工作区“常见”。

这是我的输出yarn workspaces info

我尝试将名称更改为 package/common 或 @gemini/common 但没有运气。

我在这里想念什么?

0 投票
1 回答
5404 浏览

create-react-app - 如何使用 Yarn 工作区在 CRA 中导入通用模块?

我有一个使用 Yarn 工作区的 monorepo。我有一个基于 create-react-app 的包,它应该从一个通用模块(repo 中的兄弟包)导入。

这个通用包不包含任何 React 组件。只是业务逻辑。它的源代码是从 Typescript 转译而来的。通用包可以很好地与我在其他包中的后端代码一起使用。

开箱即用,这不适用于 CRA,并给我一个错误:

./src/App.tsx 未找到模块:无法解析“@gemini/common”

我需要做什么来配置 CRA 来查找模块?

我在 CRA monorepo 支持上发现了这个未解决的问题,但我不确定它是如何关联的,并且那里有很多信息。

0 投票
1 回答
4334 浏览

npm - 使用 yarn 工作空间时,如何强制将包安装在相关的 node_modules 中?

我喜欢 yarn 工作区,但由于与外部工具不兼容,我常常发现自己不得不拿出一个特定的包。

主要问题是我在相关的 node_modules中没有他们的源代码,但在上面几个级别(这对于纱线工作区和节点来说是正常的,通常)。

例如,当在相对路径中找不到“openzeppelin-eth”时, ZeppelinOS会给出以下错误消息:

找不到“openzeppelin-eth”的 zos.json 文件。确保它是由 npm 包提供的。

有没有办法强制复制一个包?我读到了--focus,但这不是我需要的。