问题标签 [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 回答
503 浏览

typescript - monorepo 中的打字稿路径别名

我有一个使用 Typescript 并具有以下结构的纱线工作区的 monorepo 设置:

包B使用包A中的资源。我希望能够做的是:导入并packageA/srcpackageB/srcpackageB的编译过程中自动将路径更改为packageA/lib(A的编译版本)。

我尝试在 tsconfig 中设置路径配置,例如:

但是编译版本没有任何变化。他们反正我能做到吗?

0 投票
0 回答
776 浏览

yarnpkg - 如何正确删除纱线工作区?

package.json我在eg中配置了 2 个工作区examplegatsby-theme但后来我发现我实际上是在开发一个 gatsby-starter,所以我examplepackage.json.

我想知道我是否将所有文件从gatsby-theme/项目根目录移动并package.json用 's 覆盖和其他文件gatsby-theme,它是否成为可以同时使用npm和管理的项目yarn

0 投票
1 回答
191 浏览

git - 在纱线工作区中运行“git clean -xdf”时,跟踪文件被删除

git clean -xdf在带有 yarn 工作区的 repo 中运行时,工作区的内容将被删除。

考虑这个文件夹结构:

  • 工作区1
    • index.js
    • 包.json
  • 工作区2
    • index.js
    • 包.json
  • .gitignore
  • 自述文件.md
  • 包.json
  • 纱线锁

运行git clean -xfd粗体文件(跟踪的源代码控制文件)后被删除!即使 clean 根本不应该影响跟踪的文件。

我相信这是一个纱线工作区错误。我打开了一个问题@yarn: https ://github.com/yarnpkg/yarn/issues/7536

有没有人遇到过这个错误?有没有人有解决方法或知道这种行为的根本原因?

对于有兴趣亲眼看到该错误的任何人,我创建了一个使其易于重现的存储库: https ://github.com/Shmulik-Kravitz/yarn-with-git-bug

重现的步骤在里面。

输出yarn --verbose(很长): https ://github.com/Shmulik-Kravitz/yarn-with-git-bug/blob/master/yarn%20log

输出git clean -xdf

输出git status

0 投票
0 回答
653 浏览

typescript - 打字稿在编译时不排除 node_modules

每次尝试构建代码时都会出现此错误,而且我忘记告诉我正在使用纱线工作区,并且我在所有 tsconfig 中都排除了 node_modules

实际错误:

即使我排除了 node_modules 和 skipLibCheck:true,我也无法使其工作,但似乎没有任何帮助

我的 tsconfig.json

我想编译它时没有错误并排除 node_modules 中的 .d.ts 文件

0 投票
1 回答
549 浏览

typescript - 如何避免在带有共享包的 monorepo 中跳转到 d.ts

我使用 Yarn 工作区创建了一个打字稿 monorepo。一个包“公用”由其他包共享。

它的 package.json 配置如下:

每当我使用“转到定义”或 cmd+单击 VSCode 中的函数时,它会将我带到 d.ts 文件而不是原始的打字稿定义。这真的伤害了我的工作流程。

在我将 main 简单地设置为 TS 源文件之前,它适用于跳转到功能,但它不可部署,因为在部署期间某些包是在云中构建的,因此需要使用常规 javascript / 发布通用包NPM 接口使其工作。

有针对这个的解决方法吗?

0 投票
1 回答
2894 浏览

javascript - 纱线链接所有包/工作区

Yarn 的链接允许您注册一个本地包以符号链接到另一个本地包。要使用link你 cd 进入包目录并运行yarn link. 这适用于单个包,但是我有一个 monorepo,使用 Yarn 的工作区和 Lerna。有很多包,我想要一种简单的方法来链接 monorepo 中的所有包。

我的package.json

我的lerna.json

是否有一种简单的方法可以在每个包上运行yarn link(和)?yarn unlink

0 投票
0 回答
371 浏览

node.js - Yarn 工作区问题:Yarn 决定在工作区中“放置”一些依赖项,而不是在“根”node_modules 文件夹中

我有一个由两个工作区组成的项目:

  • 客户端(Angular 8)packages/client
  • 服务器(NestJS)在packages/server

这是根package.json

这是问题所在:出于某种原因,在向客户端和/或服务器添加了一些依赖项(来自 Angular 和 NestJS 的依赖项)之后,Yarn 决定将依赖项移动@nestjspackages/server/node_modules而不是将其放在node_modules文件夹中。那就是将依赖项从node_modules/@nestjs移至packages/server/node_modules/@nestjs

内容packages/client/package.json

内容packages/server/package.json

0 投票
1 回答
242 浏览

expo - 如何解决来自monorepo中共享包博览会项目的导入

我从我的包内的打字稿文件的共享包中导入mobile,目前正在使用expo-yarn-workspaces

但是在运行时expo start --clear --web会抛出一个错误

模块解析失败:意外令牌 (6:7) 您可能需要适当的加载程序来处理此文件类型。| const ButtonTypes = tuple("outlined", "primary", "danger", "link");

0 投票
0 回答
443 浏览

react-native - 在 monorepo 中设置 react-native 时出现捆绑错误

我在使用工作区的 yarn monorepo 中设置新的 react-native 项目时遇到了一些问题。我的根 package.json 看起来像:

当我运行yarn run-ios构建成功但我得到捆绑器错误:

bugsnag-react-native文件夹确实存在于根目录中node_modules

有谁知道这里可能发生什么/如何解决它?

我正在使用纱线版本1.19.0

0 投票
1 回答
555 浏览

lerna - 在 monorepo 中的两个项目之间共享 typescript 代码(与本地相同)

我一直在尝试在两个 repos 之间共享代码,所以我了解使用 lerna 和 yarn 工作区的 monorepo 方法。

但是以这个例子为例:假设我在一个 monorepo 中有 2 个反应项目。他们共享代码,假设他们共享:

components, utils, modules, redux reducers/actions

为什么我不能创建一个“共享文件夹”然后能够像我在本地一样导入这些模块。

import LoginComponent from '@shared/components/login/LoginComponent'


据我了解,不可能像上面那样做?当您因导入 @shared 存储库而丢失文件夹结构并且必须导出索引中的所有内容时

所以我想我可以在根目录添加一个package.json,@shared/*但我只有一层目录用于结构。

不能简单地从 monorepo 中项目之间的共享目录导入似乎有点奇怪?这是出于任何原因还是我错过了什么?

或者然后导入代码有什么问题,例如:

import LoginComponent from '../../../shared/components/login/LoginComponent' ?

共享将在其中/packages