问题标签 [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.
yarnpkg - Yarn monorepo:在一些包上运行 Yarn 脚本,但不是全部
我正在尝试在我的一些工作区包中运行测试,但不是全部
从monorepo根我想运行类似的东西
或者
但这些命令都无效。
任何人都可以提出解决方法吗?
lerna - lerna 在 yarn 工作区的优势,为什么要使用 lerna
我正在尝试设置一个单声道回购并遇到了 lerna+yarn。我的问题是,我使用 lerna 获得的实际优势是什么。我只能使用纱线工作区并具有相同的功能。我遇到了以下问题将 Lerna 与 Yarn 工作区一起使用有什么好处吗?但是这里没有关于使用 lerna 的具体优势的具体答案。
node.js - 如何将一个应用程序从具有依赖关系的大型 monorepo 部署到同一个 repo 中的包到谷歌应用程序引擎?
我有一个带有多个应用程序和包以及相互依赖关系的大型 node.js monorepo。这一切都由纱线工作区和一点点 lerna 管理。一切对我来说都很好,但是我在尝试将这个 monorepo 中的一个应用程序部署到谷歌应用程序引擎时遇到了麻烦。
主要问题是应用程序引擎想要安装仅位于本地且不在 npm 上的包,它会引发错误。
我已经搜索了谷歌云文档,但没有找到任何我可以用来指定自定义节点包或类似内容的东西。
有没有办法在不将本地包发布到 npm 的情况下进行这样的部署?
我要部署的应用程序的基本结构如下所示:
yarnpkg - 如何安装没有符号链接的纱线工作区包?
我有一个看起来像这样的纱线工作区项目:
正如你所看到的,我有一个server.Dockerfile
,它构建了一个服务器的镜像,我可以将它推送到不同的托管服务提供商,比如 Heroku 或 AWS。
我复制packages
并package.json
进入这个容器:
然后我只安装server
包的依赖项:
现在所有依赖项都在node_modules
文件夹中,接下来我想删除packages
文件夹以从 docker 映像中删除任何不必要的代码(例如客户端代码):
这样做的问题是node_modules
文件夹内的所有纱线工作区包只是文件夹的符号链接packages
......所以我无法删除该文件夹。
如何
yarn install
制作纱线工作区包的副本而不是创建符号链接?或者,有没有另一种方法来删除所有未使用的代码(例如客户端代码),这样我的 docker 图像就不会臃肿?
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
,因为我的真实项目有更多的服务器在运行。
错误可能在于我的Dockerfile
or docker-compose.yml
,但我找不到它。
提前感谢您的每一个帮助!
yarnpkg - 工作空间仍在吊装的 nohoist
在我的 Monorepo 中,我有一个包,我希望在它的 node_modules 中包含所有依赖项。
但无论我做什么,它的 node_modules 仍然是空的。
因此,出于我的问题的目的,我能够通过以下设置重现该问题
我为此创建了一个仓库!
主包.json
B/package.json
好像
现在,当我yarn
在项目的根目录中运行时,所有依赖项都安装在根目录中node_modules
。
纱线版本:1.16.0 节点:12.4.0
有什么建议可能是什么问题?
node.js - 升级根目录下的 yarn 不会升级 Workspace 依赖
在根目录中运行yarn upgrade
时,它只升级根目录的package.json
and yarn.lock
,但我需要升级workspace dependencied
.
有没有办法做到这一点,除了使用yarn upgrade-interactive
?
yarnpkg - 如何使用 Yarn 定位单个工作区?
我有这样设置的工作区
在我的包目录中,我有一个文件夹common
,其中包括自己的文件夹package.json
等。
当我执行yarn workspaces run build
它时,它会触发所有工作区的构建脚本。但是,如果我尝试使用yarn workspace
命令来定位一个特定的工作区,就像yarn workspace common build
我不断收到错误一样:
错误未知工作区“常见”。
这是我的输出yarn workspaces info
:
我尝试将名称更改为 package/common 或 @gemini/common 但没有运气。
我在这里想念什么?
create-react-app - 如何使用 Yarn 工作区在 CRA 中导入通用模块?
我有一个使用 Yarn 工作区的 monorepo。我有一个基于 create-react-app 的包,它应该从一个通用模块(repo 中的兄弟包)导入。
这个通用包不包含任何 React 组件。只是业务逻辑。它的源代码是从 Typescript 转译而来的。通用包可以很好地与我在其他包中的后端代码一起使用。
开箱即用,这不适用于 CRA,并给我一个错误:
./src/App.tsx 未找到模块:无法解析“@gemini/common”
我需要做什么来配置 CRA 来查找模块?
我在 CRA monorepo 支持上发现了这个未解决的问题,但我不确定它是如何关联的,并且那里有很多信息。
npm - 使用 yarn 工作空间时,如何强制将包安装在相关的 node_modules 中?
我喜欢 yarn 工作区,但由于与外部工具不兼容,我常常发现自己不得不拿出一个特定的包。
主要问题是我在相关的 node_modules中没有他们的源代码,但在上面几个级别(这对于纱线工作区和节点来说是正常的,通常)。
例如,当在相对路径中找不到“openzeppelin-eth”时, ZeppelinOS会给出以下错误消息:
找不到“openzeppelin-eth”的 zos.json 文件。确保它是由 npm 包提供的。
有没有办法强制复制一个包?我读到了--focus,但这不是我需要的。